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的属性
使用示例:
1)在Form2窗体添加公共属性
public partial class Form2: Form
{
    private string _username;
    private string _password;
    public string UserName
    {
        get
        {
            return _username;
        }
        set
        {
            _username=value;
        }
    }
    public string Password
    {
        get
        {
            return _password;
        }
        set
        {
            _password=value;
        }
    }
    .....
}

2)在窗体Form1添加一个的Botton1、一个comboBox1,在Botton1_Click函数中如下代码:

private void button1_Click(object sender,EventArgs e)
{
   Form2 myForm2 = new Form2();
   myForm2.UserName="Richard";//Form1向Form2传值!!!
   myForm2.Password="pwd1234";
   DialogResult result= myForm2.ShowDialog();
   if(result==DialogResult.OK)
   {
        comboBox1.Items.Add(myForm2.UserName);Form2向Form1传值!!!
        comboBox2.Items.Add(myForm2.Password);
    }
}
3)对Form2的代码作如下完善:
在Form2_Load中添加如下代码:
private Form2_Load(object sender,EventArgs e)
{
     textBox1.Text=_username;
     textBox2.Text=_password;
}
在textBox1、textBox2的textChanged事件中添加如下代码:
private void textBox1_TextChanged(object sender,EventArgs e)
{
     this.UserName=textBox1.Text;
}
private void textBox2_TextChanged(object sender,EventArgs e)
{
     this.Password=textBox2.Text;
}
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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值