yanyanquan 发表于 2013-1-26 13:02:22

C# Winform 窗体传值的几种方法

窗体传值的几种方法:
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窗体里的控件了!
  }
}
 
页: [1]
查看完整版本: C# Winform 窗体传值的几种方法