当前位置:文档之家› C#开发WinForm如何在两个窗体之间传递参数

C#开发WinForm如何在两个窗体之间传递参数

通过A窗体打开B窗体,然后将参数从A窗体传递到B窗体:
1、通过构造函数实现
(1)编写Class B的构造函数:
public B(string canhu)
{
InitializeComponent();
textBox1.Text = canhu;
}
(2)在Class A中初始化Class B并进行赋值:
private void button1_Click(object sender, EventArgs e)
{
B b = new B(textBox1.Text);
b.ShowDialog(this);
}
(3)在Class B完成按钮事件:
private void button1_Click(object sender, EventArgs e) {
MessageBox.Show(textBox1.Text);
}
2、通过全局变量实现
(1)在Class B中设置全局变量:
public string passText
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
(2)在Class A初始化Class B的时候设置Class B的公有属性:
private void button1_Click(object sender, EventArgs e) {
B b = new B();
b.passText = textBox1.Text;
b.ShowDialog(this);
}
通过A窗体打开B窗体,然后将参数从A窗体传递到B窗体,之后在窗口B完成相应操作后将参数返还给A:
这种情况可以通过事件完成:
(1)在Class B中设置全局变量:
public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
(2)在Class B中设置事件:
public event EventHandler accept;
(3)在Class A中编写如下的函数:
void b_accept(object sender, EventArgs e)
{
//事件的接收者通过一个简单的类型转换得到Form2的引用
B b = (B)sender;
//接收到Form2的textBox1.Text
this.textBox1.Text = b.Form2Value;
}
(4)在Class A的按钮事件中完成如下的操作:
private void button1_Click(object sender, EventArgs e)
{
B b = new B();
b.Form2Value = this.textBox1.Text;
b.accept += new EventHandler(b_accept);
b.ShowDialog(this);
}
完成了!。

相关主题