在窗口一注册事件侦听。
事件触发在窗口二 里执行。
//窗口1 Form1
public delegate void ListenerHandler();
public event ListenerHandler Listener=null;
public void DoSomeThing()
{
if(Listener!=null)//确定事件已被订阅(注册过)
{
Listener();//触发事件
}
}
//窗口2 Form2
Form1 f1=new Form1();
f1.Listener+=new ListenerHandler(noteMe);//订阅(注册)窗口1的Listener事件
//事件处理方法
private void noteMe()
{
//窗口1的Listener事件出发后执行
}
带参数的事件侦听,只需在委托里添加参数。修改如下:
//窗口1 Form1
public delegate void ListenerHandler(Object sender);
public event ListenerHandler Listener=null;
public void DoSomeThing()
{
if(Listener!=null)//确定事件已被订阅(注册过)
{
Listener("在这里传递参数");//触发事件
}
}
//窗口2 Form2
Form1 f1=new Form1();
f1.Listener+=new ListenerHandler(noteMe);//订阅(注册)窗口1的Listener事件
//事件处理方法
private void noteMe(Object sender)
{
//窗口1的Listener事件出发后执行
}