窗体传值的几种方法:
1.使用公共类
在项目中建一UserHelper类,里面都是静态成员
class UserHelper
{
public static int id;
public static string name;
.........
}
各窗体可以把里面的id,name当作全局变量来用.
A窗体:
UserHelper.id=10;
B窗体:
textBox1.Text=UserHelper.id.ToString();
2.窗体添加静态属性
给窗体添加一个public static 的属性,实际上和上面的方法是一样的.
访问方法如下:
Form1.StuId=5;
3.使用构造函数传递一个数值
class FormB
{
int orgId;
public FormB(int orgId)
{
this.orgId=orgId;
}
}
class FormA
{
public void ShowB()
{
FormB fb=new FormB(5); // 5是要传递过去的值
fb.Show();
}
}
4.把A窗体整个传递给B窗体
有些时候需要在B窗体里对A窗体的某个控件值做修改,并且需要立即改变A窗体的控件显示,本方法适合这种情况。
修改FormA,把要在B里处理的控件的可访问性(Modifiers)设为public,然后按下面的方式处理
class FormA
{
public void ShowB()
{
FormB fb=new FormB(this); // 在构造函数里把A窗体本身传过去
fb.Show();
}
}
class FormB
{
FormA fm; //B窗体增加一个FormA类型的成员
public FormB(FormA fm) //添加一个带参数的构造方法,参数类型是FormA
{
this.fm=fm;
}
protected void Method1()
{
fm.txtName.Text="Haha!"; //在这儿可以直接操作A窗体里的控件了!
}
}