這里的自定義控件是由普通控件組合而成的。
希望事件響應代碼推遲到使用自定義控件的窗體里寫。
步驟一:新建一個用戶控件,放兩個按鈕,Tag分別是btn1,btn2.
這兩個按鈕的共用單擊事件處理代碼如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; namespace UcDll { public partial class UcTest : UserControl { public UcTest() { InitializeComponent(); } //定義委托 public delegate void BtnClickHandle(object sender, EventArgs e); //定義事件 public event BtnClickHandle UserControlBtnClicked; private void btn_Click(object sender, EventArgs e) { if (UserControlBtnClicked != null) UserControlBtnClicked(sender, new EventArgs());//把按鈕自身作為參數傳遞 } } }
步驟二:當用戶拖一個自定義控件在窗體的時候,
在事件里可以找到UserControlBtnClicked事件。
private void ucTest1_UserControlBtnClicked(object sender, EventArgs e) { Button btn = sender as Button; MessageBox.Show(btn.Tag.ToString()); }