问题描述
朋友你好,我c#新手,看了你好几篇博文了你挺厉害的,能不能指教下--我在主窗体重两个平级的ToolStripMenuItem的按钮下打开两个子窗体;(问题1)我怎么才能记录下我在选择ToolStripMenuItem是选了哪个?(问题2)我想在一个子窗体中引用另一个子窗体中的--局部变量--下面是我现在做的结果FileImportForm中UserOperationus=newUserOperation(this.filename.Text);在UserOperation中构造函数publicUserOperation(stringstr){InitializeComponent();this.filePath.Text=str;}debug测试this.filePath.Text是能保存this.filename.Text的值得,关键是我要在其他UserOperation()的方法中用到它,我该怎么取出来,只是做简单的赋值的话等到要用它的时候this.filePath.Text已经为空了,我该怎么弄或者你有什么好方法吗?谢谢了。(Knight94大神,在你的文章下发不了评论,只能单独发出来了)
解决方案
解决方案二:
@Knight94
解决方案三:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。
解决方案四:
引用2楼lihui398的回复:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。
问题2能给下具体形式吗?c#新手,定义公共静态类变量然后咱其他方法里就能取到this.filePath.Text的值了吗?我先去试试啊·············
解决方案五:
引用2楼lihui398的回复:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。
这是第一个类中一个方法privatevoidbnt_browse_Click(objectsender,EventArgse){//打开对话框OpenFileDialogopenfile=newOpenFileDialog();openfile.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Templates);//过滤文件类型openfile.Filter="pqdfiles(*.pqd)|*.pqd|Allfiles(*.*)|*.*";openfile.RestoreDirectory=true;//检查文件是否存在,路径是否正确openfile.CheckPathExists=true;openfile.CheckFileExists=true;if(openfile.ShowDialog()==DialogResult.OK){this.filename.Text=openfile.FileName;}Stringfilename=openfile.FileName;---------------我想在另一个类中取到这个filenema的值,试了几下另一个类中都为空。
解决方案六:
引用4楼u011052634的回复:
Quote: 引用2楼lihui398的回复:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。这是第一个类中一个方法privatevoidbnt_browse_Click(objectsender,EventArgse){//打开对话框OpenFileDialogopenfile=newOpenFileDialog();openfile.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Templates);//过滤文件类型openfile.Filter="pqdfiles(*.pqd)|*.pqd|Allfiles(*.*)|*.*";openfile.RestoreDirectory=true;//检查文件是否存在,路径是否正确openfile.CheckPathExists=true;openfile.CheckFileExists=true;if(openfile.ShowDialog()==DialogResult.OK){this.filename.Text=openfile.FileName;}Stringfilename=openfile.FileName;---------------我想在另一个类中取到这个filenema的值,试了几下另一个类中都为空。
classProgram{staticvoidMain(string[]args){//设置初始值UserOperationuo1=newUserOperation("AAAAAAAAAAAA.txt");//获取文件名Console.WriteLine(UserOperation.FileName);//设置初始值UserOperationuo2=newUserOperation("BBBBBBBBBBBB.txt");//获取文件名Console.WriteLine(UserOperation.FileName);UserOperationuo3=newUserOperation();//获取文件名Console.WriteLine(UserOperation.FileName);Console.ReadLine();}}publicclassUserOperation{//定义一个公共的静态的类变量publicstaticstringFileName;publicUserOperation(){}publicUserOperation(stringfileName){FileName=fileName;}}
解决方案七:
引用5楼lihui398的回复:
Quote: 引用4楼u011052634的回复:
Quote: 引用2楼lihui398的回复:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。这是第一个类中一个方法privatevoidbnt_browse_Click(objectsender,EventArgse){//打开对话框OpenFileDialogopenfile=newOpenFileDialog();openfile.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Templates);//过滤文件类型openfile.Filter="pqdfiles(*.pqd)|*.pqd|Allfiles(*.*)|*.*";openfile.RestoreDirectory=true;//检查文件是否存在,路径是否正确openfile.CheckPathExists=true;openfile.CheckFileExists=true;if(openfile.ShowDialog()==DialogResult.OK){this.filename.Text=openfile.FileName;}Stringfilename=openfile.FileName;---------------我想在另一个类中取到这个filenema的值,试了几下另一个类中都为空。
classProgram{staticvoidMain(string[]args){//设置初始值UserOperationuo1=newUserOperation("AAAAAAAAAAAA.txt");//获取文件名Console.WriteLine(UserOperation.FileName);//设置初始值UserOperationuo2=newUserOperation("BBBBBBBBBBBB.txt");//获取文件名Console.WriteLine(UserOperation.FileName);UserOperationuo3=newUserOperation();//获取文件名Console.WriteLine(UserOperation.FileName);Console.ReadLine();}}publicclassUserOperation{//定义一个公共的静态的类变量publicstaticstringFileName;publicUserOperation(){}publicUserOperation(stringfileName){FileName=fileName;}}
我后来也尝试出来了,在UserOperation中定义一个publicstatic变量就行了。谢谢
解决方案八:
把子窗体的值传回主窗体,然后在传给第二个子窗体。
解决方案九:
引用2楼lihui398的回复:
问题一:在主页面类中定义类变量ToolStripMenuItemcurClickItem,当点击两个平级的ToolStripMenuItem时,把点击的ToolStripMenuItem赋值给curClickItem;问题二:方法1:在类UserOperation定义一个公共的静态的类变量;方法2:每个UserOperation的构造函数都传路径。
朋友对于第一个问题,那个主界面上的按钮内容是单个文件导入privatevoid单个文件ToolStripMenuItem_Click(objectsender,EventArgse)//手动文件导入{curClickItem1;//这里怎么把“单个文件导入的内容”赋值
解决方案十:
其实最简单的方法是,设置全局静态变量,每个界面都可以调用了,不过这个方法仅限于整个项目你自己开发