EventHandlerList事件字典集合类的使用

   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可以在一个集合中管理多个对象,节省了事件对象占用的空间

原文地址:https://www.cnblogs.com/whbk/p/6407333.html