c#中winform窗体之间的传值
2016-04-22 11:11
441 查看
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窗体添加公共属性
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中添加如下代码:
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,然后按下面的方式处理
创建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窗体里的控件了! } }
相关文章推荐
- C# Math.Round中国式的四舍五入法
- C#委托
- C# 非常有用的方法和短句
- C#多线程编程
- C#,数据类型转换,装箱与拆箱概念,数据类型转换方法
- C#界面设计之树目录TreeView的使用
- C#读取 文本文件 写入textbox
- C#实现文本文件读写方法汇总
- C#关于输入输出流的知识点
- C#遍历指定文件夹中的所有文件
- C# 图片旋转360度程序
- C# 中反射获取某类的子类和根据类型名动态创建对象(转载)
- C# 排列组合
- C#字符串转日期格式
- 细说C#多线程那些事 - 线程同步和多线程优先级
- C#中的线程(一)入门
- C# class示例 0012
- XML转换
- CSharpGL(17)重构CSharpGL
- 《CLR via C#:框架设计》读书笔记 - 委托