1.使用公共类
创建UserHelper类,里面都是静态成员
class UserHelper
{
public static int id;
public static string name;
.........
}
各窗体可以把里面的id,name当作全局变量来用;
创建UserHelper类,里面都是静态成员
class UserHelper
{
public static int id;
public static string name;
.........
}
各窗体可以把里面的id,name当作全局变量来用;
A窗体:
UserHelper.id=10;
B窗体:
textBox1.Text=UserHelper.id.ToString();
B窗体:
textBox1.Text=UserHelper.id.ToString();
2.窗体添加公共属性
1)在Form2窗体添加公共属性
- 给窗体添加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中添加如下代码:
在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,然后按下面的方式处理
有些时候需要在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窗体里的控件了! } }