用C#开发应用的时候,通常需要多个窗体!有时候为了打开窗体的时候禁止操作父窗体,我们一般采用模态对话框的方法,也算就是用ShowDialog()方法。
假设有两个窗体A和B,A作为主窗体使用ShowDialog()方法打开B窗体,我们可能遇到以下几种情况。
1.从A窗体传值到B窗体,这个一般有两个方法。
方法一:
A窗体代码:
FormB fb=new FormB();
fb.varStr="i am a test string":
fb.ShowDialog()
B窗体代码:
public string varStr;
这样就可以将A窗体中的内容窗体到B窗体中,在B窗体中直接使用varStr变量即可。
方法二:
A窗体代码:
string varStr="aaaaaaaaaa";
FromB fb = new FormB(varStr);
fb.ShowDialog();
B窗体代码:
private string str;
public FormB(string str)
{
InitializeComponent();
this.str=str;
}
这样也可以达到同样的目的;
2.从B窗体传值到A窗体。
这个需求挺有意思,百度找到了千百种方法,一个比一个蛋疼,一个比一个复杂。其实这个真的很简单
A窗体代码:
FromB fb=new FormB();
fb.ShowDialog();
string rtStr=fb.returnStr;
B窗体代码:
public string returnStr;
returnStr="我是要传递到A窗体的内容";
this.Close();
其实这样就可以了,根据我自己的经验来看,那么多人没想到这么来估计是以为B窗体Close()之后就销毁了,其实我测试后发现没有,Close之后还是可以获取其中的变量。