如果对委托和事件不甚清楚的朋友,可先参考: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> private void button_Click( object sender , EventArgs e ) { string btnName=( sender as Button ).Name; switch ( btnName ) { case "button1": OnBtnClick( Operator.Button1 ); break; case "button2": OnBtnClick( Operator.Button2 ); break; } } } /* * * * * * *窗体订阅OnBtnClick事件 即可* * * * * * * * * * * * * * * */ private void userControl11_OnBtnClick( Operator operation ) { MessageBox.Show( string.Format( "This is {0} event." , operation.ToString( ) ) ); }