WinForm窗体间传值的方法

2019-12-26 12:01:28王振洲

}
Form2:
复制代码 private void Form_Load(object sender, EventArgs e)
{
Form1.FF();
}
使用这种方法访问其他窗体的方法,在跨窗体上实现方便,但是需要需要访问到控件值则不能直接访问,需要将值先传递给其他窗体,再有窗体传递回来,或者存储在其他变量后对这变量进行访问。
 
四、通过窗体的公有属性值

 

特点:实现简单
 
实现代码如下:
在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

复制代码 public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
在窗体Form1中这样调用
复制代码 Form2 f2 = new Form2 ( );
f2.Form2Value = "Ok"; //给Form2的textBox1赋值Ok
f2.ShowDialog ( );
 
五、通过窗体的公有属性值和Owner属性

 

特点:实现简单,灵活
 
实现代码如下:
在窗体Form1中

复制代码 public int Form1Value = 1;
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this ); //把Form1作为Form2的所有者传递给Form2
在窗体Form2中
复制代码 //Form2的所有者是Form1
Form1 f1 = ( Form1 ) this.Owner;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value .ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;
 
六、通过窗体的公有属性值和Application.OpenForms属性

 

说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在 .NET Framework2.0版中)
 
实现代码如下:
在窗体Form1中

复制代码 public int Form1Value = 1;
Form2 f2 = new Form2 ( );
f2.Show ( );
在窗体Form2中
复制代码 string formName = "Form1";
Form fr = Application.OpenForms [ formName ];
if ( fr != null )
{
Form1 f1 = ( Form1 ) fr;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value.ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;
}
 
七、传参式传值

 

此方法顾名思义就是将需要的值一参数形式传递给需要值的窗体