六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 42|回复: 0

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

[复制链接]

升级  33%

85

主题

85

主题

85

主题

举人

Rank: 3Rank: 3

积分
299
 楼主| 发表于 2013-1-26 13:02:22 | 显示全部楼层 |阅读模式
窗体传值的几种方法:
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窗体里的控件了!
  }
}
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表