C#中有时需要在其他窗体上访问主窗体中的成员数据或系统中一些基本配置数据要在不同的窗体中使用,就需要在不同窗体间传递相同数据。以下总结两种窗体间数据传递的方法。
1,访问主窗体中的成员数据的方法:
(1),创建一个应用程序(已有主窗体Form1);
(2),再添加一个窗体(Form2);
(3),在Form1中添加一个按钮button1;
(4),在Form2中也添加一个按钮button1;
(5),在Form2中定义一个Form1的对象:
public Form1 m_form1;
(6),用以下代码改写Form2的构造函数Form2:
public Form2(Form1 myform)
{
InitializeComponent();
this.m_form1 = myform; //添加的代码
}
(7),在Form1中定义我们要传递的成员数据:
public int a;
(8),在Form1中按钮button1的单击事件中加入以下代码:
private void button1_Click(object sender, EventArgs e)
{
//添加的代码
a = 10;
Form2 m_form = new Form2(this) ;
m_form.Show();
}
(9),在Form2中按钮button1的单击事件中加入以下代码用于测试:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(this.m_form1.a.ToString() );
}
2,基本配置数据共享的静态类方法:
(1),创建一个应用程序(已有主窗体Form1);
(2),再添加一个窗体(Form2);
(3),在Form1中添加一个按钮button1;
(4),在Form2中也添加一个按钮button1;
(5),创建一个静态类Class1,该类的代码如下:
public class Class1
{
public static int a;
static Class1()
{
a = 0;
}
//属性
public static int A
{
get
{
return a;
}
set
{
a = value;
}
}
}
(6),在Form1中按钮button1的单击事件中加入以下代码:
private void button1_Click(object sender, EventArgs e)
{
//赋值为12
Class1.A = 12;
Form2 m_form = new Form2(this);
m_form.Show();
}
(7),在Form2中按钮button1的单击事件中加入以下代码用于测试:
private void button1_Click(object sender, EventArgs e)
{
//显示值,12
MessageBox.Show(Class1.A.ToString());
}