public partial class CompositeControl : UserControl{ public event EventHandler ButtonClicked; protected virtual void OnButtonClicked(EventArgs e) { // 定义一个事件 ButtonClicked?.Invoke(this, e); } private void button1_Click(object sender, EventArgs e) { OnButtonClicked(e); } // 其他代码...}
在窗体中使用复合控件并处理事件:在窗体的设计器中,将用户控件从工具箱拖放到窗体上在窗体的代码文件中,订阅复合控件的事件并编写事件处理程序例如:public partial class Form1 : Form{ private CompositeControl compositeControl1; public Form1() { InitializeComponent(); compositeControl1 = new CompositeControl(); compositeControl1.ButtonClicked += CompositeControl1_ButtonClicked; Controls.Add(compositeControl1); } private void CompositeControl1_ButtonClicked(object sender, EventArgs e) { // 处理按钮点击事件的代码 } // 其他代码...}
在这个示例中,在复合控件中定义了一个名为"ButtonClicked"的事件,并在按钮的点击事件中引发了该事件然后,在窗体中订阅了复合控件的事件,并编写了事件处理程序来处理按钮点击事件这样,当复合控件中的按钮被点击时,事件将被引发,并且窗体中的事件处理程序将被调用(图片来源网络,侵删)
0 评论