组件,事件,代表的关系
定义代表后必须再定义事件接口,在组件中为了能让用户自定义某事件的处理方法,所以
组件必需提供事件接口.如果只是继承于单个已有的Windows控件,可以重载已知的方 法
进行添加自己的处理,也可以声明自定义的事件接口.而若组件中包含多个控件,应该根
据实际需要声明事件接口,此处本人就两个按钮的 使用而声明两个自定义的事件接口,
public event UserLoginEventHandler SubmitLogin;
public event CancelEventHandler Cancel;
protected virtual void OnSubmitLogin(EventLoginArgs e)
{
if(this.SubmitLogin!=null)
{
SubmitLogin(this,e);
}
}
protected virtual void OnCancel(EventArgs e)
{
if(this.Cancel!=null)
{
Cancel(this,e);
}
按惯例事件处理方法返回值必须为void,且必须有两个参数,一个是事件的来源,和一个
EventArgs派生的对象
事件的发布者和订阅者之间的藕和事非常松散的,可以说没有关系,当事件发生时可以有
任意多的类得到通知,订阅类无需知道事件源的工作机制,发布者也不要知道事件的处理
方法,增强了程序的独立性,使代码的可维护性增强了