比如自定义个消息和委托
public delegate void EventHandler( object sender , EventArgs e );
public event EventHandler Click;然后在某个函数内触发Click消息,结果产生异常,object reference not set之类。
查看了下,估计是因为Click为空。但是我的想法是,程序刚执行时,先不处理这个消息,也就是任由他产生。然后某种情况下,为其添加个委托,如:
Click+= new System.EventHandler(this.DoSomething);
难道不行,定义了事件,并且触发事件,则必须有个缺省消息处理函数?
public delegate void EventHandler( object sender , EventArgs e );
public event EventHandler Click;然后在某个函数内触发Click消息,结果产生异常,object reference not set之类。
查看了下,估计是因为Click为空。但是我的想法是,程序刚执行时,先不处理这个消息,也就是任由他产生。然后某种情况下,为其添加个委托,如:
Click+= new System.EventHandler(this.DoSomething);
难道不行,定义了事件,并且触发事件,则必须有个缺省消息处理函数?
Click(this,new EventArgs());
if(evt != null)
evt(o,e);
void foo()
{
....
OnClick(new EventArgs());
.....
}private void OnClick(EventArgs e)
{
EventHandler temp=Click;
if(temp!=null)
temp(this,e);
}
public void OnClick(事件参数 e)
{
if(this.Click != null) this.Click(this, e);
}