EventHandlerList
主要成员 public void AddHandler(object key, Delegate value);//将一个委托添加到集合中,使用key作为标记 public void AddHandlers(EventHandlerList listToAddFrom);//将一个委托从集合中remove public Delegate this[object key] { get; set; }//通过使用事件的key获取事件
在创建众多个事件的时候,为了节约资源,使用EventHandlerList进行统一管理,
当需要事件的时候就使用EventhandelrList实例.AddHandler(keys,Delete)将委托添加进去,
也可以使用EventhandelrList实例.RemoveHandler(keys,Delete)将委托删除,
想使用事件的时候,可以通过Key来取得创建的委托
System.ComponentModel.EventHandlerList eventHandlerList = new System.ComponentModel.EventHandlerList();
eventHandlerList.AddHandler("key1",new MyDelete(new Component().SayHello)); eventHandlerList.AddHandler("key2", new MyDelete(new Component().SayHi));
//eventHandlerList.RemoveHandler("key2",new MyDelete(new Component().SayHi));
MyEventHandler +=(MyDelete)eventHandlerList["key1"]; MyEventHandler += (MyDelete)eventHandlerList["key2"]; MyEventHandler();
*总结:通过EventHandlerList可以在一个集合中管理多个对象,节省了事件对象占用的空间