用户控件 委托事件

来源:互联网 发布:perl语言编程 编辑:程序博客网 时间:2024/06/06 09:55
 

如果对委托和事件不甚清楚的朋友,可先参考:http://www.cnblogs.com/huomm/archive/2007/12/04/982869.html

加深理解。

 

本例的用户控件仅放置俩Button

view plaincopy to clipboardprint?
  1. /// <summary>   
  2. /// 操作枚举类   
  3. /// </summary>   
  4. public enum Operator  
  5. {  
  6.     Button1 ,  
  7.     Button2  
  8. }  
  9.   
  10. public partial class UserControl1 : UserControl  
  11. {  
  12.     public UserControl1( )  
  13.     {  
  14.         InitializeComponent( );  
  15.     }  
  16.   
  17.     //声明事件委托   
  18.     public delegate void MyEventHandler( Operator operation );  
  19.   
  20.     //定义事件   
  21.     public event MyEventHandler OnBtnClick;  
  22.   
  23.     /// <summary>   
  24.     /// 监视事件   
  25.     /// </summary>   
  26.     protected virtual void MyClick( Operator op )  
  27.     {  
  28.         if ( OnBtnClick != null )  
  29.         {  
  30.             OnBtnClick( op );  
  31.         }  
  32.     }  
  33.   
  34.     /// <summary>   
  35.     /// 用户控件按钮公用事件   
  36.     /// </summary>   
  37.     private void button_Click( object sender , EventArgs e )  
  38.     {  
  39.         string btnName=( sender as Button ).Name;  
  40.         switch ( btnName )  
  41.         {  
  42.             case "button1":  
  43.                 MyClick( Operator.Button1 );  
  44.                 break;  
  45.             case "button2":  
  46.                 MyClick( Operator.Button2 );  
  47.                 break;  
  48.         }  
  49.     }  
  50. }  
  51.   
  52.   
  53.  * * * * *窗体订阅OnBtnClick事件 即可* * * * * * * * * * * * * * * */  
  54.     private void userControl11_OnBtnClick( Operator operation )  
  55.     {  
  56.         MessageBox.Show( string.Format( "This is {0} event." , operation.ToString( ) ) );  
  57.     }  

原创粉丝点击