(1)先自定义委托,再定义事件,一般形式如下:
public class 事件数据类型:EventArgs{//封装数据信息}
public delegate 返回值类型 委托类型名(Object sender,事件数据类型 e);
public event 委托类型名 事件名;
(2)使用泛型EventHandler定义事件,一般形式如下:
public class 事件数据类型:EventArgs{//封装数据信息}
public event EventHandler<事件数据类型>事件名