如果对委托和事件不甚清楚的朋友,可先参考:http://www.cnblogs.com/huomm/archive/2007/12/04/982869.html
加深理解。
本例的用户控件仅放置俩Button
- /// <summary>
- /// 操作枚举类
- /// </summary>
- public enum Operator
- {
- Button1 ,
- Button2
- }
- public partial class UserControl1 : UserControl
- {
- public UserControl1( )
- {
- InitializeComponent( );
- }
- //声明事件委托
- public delegate void MyEventHandler( Operator operation );
- //定义事件
- public event MyEventHandler OnBtnClick;
- /// <summary>
- /// 监视事件
- /// </summary>
- protected virtual void MyClick( Operator op )
- {
- if ( OnBtnClick != null )
- {
- OnBtnClick( op );
- }
- }
- /// <summary>
- /// 用户控件按钮公用事件
- /// </summary>
- private void button_Click( object sender , EventArgs e )
- {
- string btnName=( sender as Button ).Name;
- switch ( btnName )
- {
- case "button1":
- MyClick( Operator.Button1 );
- break;
- case "button2":
- MyClick( Operator.Button2 );
- break;
- }
- }
- }
- * * * * *窗体订阅OnBtnClick事件 即可* * * * * * * * * * * * * * * */
- private void userControl11_OnBtnClick( Operator operation )
- {
- MessageBox.Show( string.Format( "This is {0} event." , operation.ToString( ) ) );
- }