如何把加到控件事件队列中的所有事件清除?
如何把加到控件事件队列中的所有事件清除? 
 在C#中,可以用+=把自定义事件添加到控件事件队列中,也可以用-=把队列中事件删除,但要把事件显式的写出来,有没有办法可以不用知道事件队列中的事件名称,直接把事件队列清空呢?   
 例如:我在TextBox1.KeyPress中加了两个事件 
 txtbox1.KeyPress   +=   new   TextBox.KeyPress(txtbox2_KeyPress); 
 txtbox1.KeyPress   +=   new   TextBox.KeyPress(txtbox3_KeyPress); 
 现在我不想用下面的两个语句来删除,有什么办法呢? 
 txtbox1.KeyPress   -=   new   TextBox.KeyPress(txtbox3_KeyPress); 
 txtbox1.KeyPress   -=   new   TextBox.KeyPress(txtbox2_KeyPress); 
 原因是我添加进去的事件不确定的,操作不同就会添加不同的事件进去!
------解决方案--------------------应该不可以,不过楼主可以不使用+=New的形式直接注册事件,而是把要注册的事件都可以添加到一个集合中,然后通过集合循环依次把所有事件-=掉.
------解决方案--------------------不可以,如果是自定义类,可以参考:     
 public   delegate   void   dele();    
   class   Demo    
   {    
   public   static   int   Main(string[]   args)      
   {          
   T   t=new   T();    
   dele   d=new   dele(t_ev);    
   t.ev+=d;    
   t.ev+=d;    
                                       t.test();    
                                       t.RemoveEv();    
   t.test();    
   return   1;    
   }          
   private   static   void   t_ev()    
   {    
   System.Console.WriteLine( "abc ");    
   }    
   private   static   void   t_ev1()    
   {    
   System.Console.WriteLine( "abc1 ");    
   }    
   }    
   class   T    
   {          
   public   event   dele   ev;    
   public   void   test()    
   {    
   if   (ev!=null)    
   ev();          
   }    
                     public   void     RemoveEv()    
                     {    
                                   ev=null;    
                         }          
   }                
   除了在定义事件本身的类里面,对事件只能使用+=和-=操作符的    
   自定义的类很好做到,就像上面的例子。如果你是使用别人的类    
   那最好的办法就是自定义控件,比如写一个    
   MyPanel:Panel    
   {    
                     public   void     RemovePaintEvent()    
                     {    
                                   Paint   =null;    
                         }          
   }    
------解决方案--------------------如果自定义TextBox类的话应该时可以的 
 Eri(NULL)的方法就可以