110,561
社区成员
发帖
与我相关
我的任务
分享
public partial class Form2 : Form//这就是你的form3,就是用来供其他窗口选择数据用的
{
public delegate void afterselectdel(object sender, selectedEventArgs e);
public event afterselectdel afterselected;
public Form2()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
}
public class selectedEventArgs:EventArgs//自定义一个事件参数类,用来传递事件发生时感兴趣的信息
{
private string _value;
public selectedEventArgs(string value)
{
_value = value;
}
public string myValue
{
get { return _value; }
set { _value = value; }
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件,当然也可以放在其他事件处理程序里面,根据需求改
{
if (this.afterselected != null)
this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
}
}
private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.afterselected += new Form2.afterselectdel(f2_afterselected);//所有需要回传值的窗口都实例化Form2并注册afterselected事件
f2.Show();
}
void f2_afterselected(object sender, Form2.selectedEventArgs e)
{
MessageBox.Show(e.myValue);//e.myValue就是Form3的Combobox选中的值,也可以通过修改selectedEventArgs类来添加想回传的数据
}
public partial class Form2 : Form//这就是你的form3
{
public delegate void afterselectdel(object sender, selectedEventArgs e);
public event afterselectdel afterselected;
public Form2()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
}
public class selectedEventArgs:EventArgs
{
private string _value;
public selectedEventArgs(string value)
{
_value = value;
}
public string myValue
{
get { return _value; }
set { _value = value; }
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件
{
if (this.afterselected != null)
this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
}
}
private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.afterselected += new Form2.afterselectdel(f2_afterselected);
f2.Show();
}
void f2_afterselected(object sender, Form2.selectedEventArgs e)
{
MessageBox.Show(e.myValue);
}