DOTNET事件处理的步骤与实现
第一步定义一个合适的委托
例
delegate void MoveEventHandler(Object SenderMoveEventArgs e)
注意DotNet框架中的标准委托的定义如下
Public delegate void EventHabdler(Object SenderEventArgs e)
参数说明
()Sender:表示消息的发送方
()EventArgs默认的消息处理类(不含附加数据)
()强烈建议使用标准的委托定义事件
第二步定义一个合适的消息
由于标准的EventArgs类不包含附加数据可继承此类使该类包含与特定时间相关的信息
如 Public class MoveEventArgs
{ Public int newPosition;
Public MoveEventArgs(int newPosition)
{
thisnewPosition = newPosition
}
}
第三步发送方声明事件并设置激发事件的代码
声明事件Public event 委托类型与事件标识
必须使用Public声明事件否则接收方就不能登记事件处理器激发一个事件的代码如下
if (事件标识 != null)
{
MoveEventArgs args = new MoveEventArgs(value);
}
事件标识(thisargs)(注意次事件为dotnet标准事件)
另建议直接使用标准系统
委托 EventHandler
发送消息 MyEvent(thisargs);
Public event EventHandler MyEvent;
声明一个事件变量
第四步接收方登记事件处理器
事件处理器也是一种委托将接收方要完成的功能加入到事件处理器实现委托与事件的挂钩一旦接收方收到发送的消息后将立即执行该方法实现功能
Sender s = new Sender();声明一个发送方实例
s事件标识 += new定义的委托(要实现的功能代码)
将事件与要实现的功能挂钩
第五步等待事件的发生
注意接收方只能处理登记完成了事件处理器后的事件对于在事件处理器之前就发生的事件接收方并不能处理