這里的自定義控件是由普通控件組合而成的。
希望事件響應代碼推遲到使用自定義控件的窗體里寫。
步驟一:新建一個用戶控件,放兩個按鈕,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());
}
