前阵子在做窗体传值的时候遇到了一点问题
在论坛搜了一下,大多数是通过构造传的但
是这种方式只能是单向的,虽然说在主窗体
能声明一个类,里面定义一个静态的变量供
form2使用,但是需要手动触发才能在form1
中获取值,对使用事件的方法来传值也有提
到,但有许多新手看了也不知道怎么做。
下面这个例子演示如何通过构造和事件传值
的。先说下具体的效果,form1中的“lab”
是显示form2(通过事件)传过来的值,“按钮”
是show出form2,form1并不hid,form2中的"tbox"
在初始化的时候显示form1通过构造传过来的值,
在form2的“tbox”中输入内容按“确定”就会
通过事件立刻显示在form1的"lab"中。
本文没有什么技术性,大家不要笑话 - -!!
//这是form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void frm(string ss)
{
Form2 f = new Form2(ss);
f.etext+=new Form2.text(show);
f.Show();
}
private void button1_Click(object sender, EventArgs e)
{
frm("hello");
}
private void show(string ss)
{
this.label1.Text = ss;
}
}
//这是form2
public partial class Form2 : Form
{
public delegate void text(string s);
public event text etext;
public Form2(string ss)
{
InitializeComponent();
this.textBox1.Text = ss;
}
private void button1_Click(object sender, EventArgs e)
{
etext(this.textBox1.Text);
}
}