WinForm窗体间传值的方法

2019-12-26 12:01:28王振洲
易采站长站为您分析WinForm窗体间传值的方法,包括了静态变量、公共变量、共有属性等方式,是非常实用的技巧,需要的朋友可以参考下    

本文实例讲述了WinForm窗体间传值的方法。。具体实现方法如下:

窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式:
 
1.公共静态变量;
2.使用共有属性;
3.使用委托与事件;
4.通过构造函数把主窗体传递到从窗体中;

一、通过静态变量

特点:传值是双向的,实现简单
 
实现代码如下:
在一个app类中定义一个静态成员value

复制代码 public class app
{
public static string value;
}
在窗体Form1中这样调用
复制代码 app.value = "f2"; //给静态成员赋值
new Form2 ( ).Show ( ); //显示Form2
在窗体Form2中
复制代码 this.Text = app.value; //取回app.value的值
app.value = "Form2"; //给app.value赋值,以便其他窗体调用
 
二、公共变量传值

 

这种方法就是利用一个公共变量,先把需要的值存放到这个公共变量,然后需要的时候再通过读取该变量的值来使用
例子
Form1:

复制代码 public static string Form1Value; // 注意,必须申明为static变量
private void button1_Click(object sender, EventArgs e)
{
Form1Value = "来自Form1";
new Form2().Show();
}
Form2:
复制代码 private void Form_Load(object sender, EventArgs e)
{
MessageBox.Show(Form1.Form1Value);
}
这种方式传值,理解和使用上都相对的简单,但是容易让变量串值,比如第一次修改为“a”,而第二次修改为“b”,则有可能本来需要“a”值的结果变成了“b”。
 
三、静态方法方式访问

 

这种方法与传值方法的第一种有些类似,就是将需要被其他窗体访问的方法用static定义,以便其他传递可以直接访问到
例子:
Form1:

复制代码 private void button1_Click(object sender, EventArgs e)
{
new Form2().Show();
}
public static void FF()
{
MessageBox.Show("Form1方法");