不同窗体间的事件传递
如何在一个工程下的两个窗体间传递事件,比如说由一个窗体的一个事件触发另外一个窗体的事件。
------解决方案--------------------直接在窗体1调用窗体2的事件方法是可以实现的。如下,点击窗体1的按钮会调用窗体2的button1_Click方法,而这个方法把Form3显示出来。
Form1的按钮事件
private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2();
form2.button1_Click(this, EventArgs.Empty);
}
Form2的按钮事件
public void button1_Click(object sender, System.EventArgs e)
{
form3 = new Form3();
form3.Show();
}
------解决方案--------------------public delegate void WndEventHandler(object sender, SomeEventArgs e);
public event WndEventHandler On_Wnd1;
public event WndEventHandler OnWnd2;
public Button_Click(object sender, EventArgs e)
{
if(On_Wnd1 != null) On_Wnd1(this, e);
}
public void On_Wnd1(object sender, SomeEventArgs e)
{
if(OnWnd2 != null) OnWnd2(this, e);
}