另一個好方法是爲每個按鈕設置自己的處理程序。當您雙擊設計器中的按鈕時,Usualy Visual Studio將生成自己的點擊處理程序。
private void ButtonPlus_Click(object sender, EventArgs e)
{
// Do something when "+" pressed
}
private void ButtonMinus_Click(object sender, EventArgs e)
{
// Do something when "-" pressed
}
您可以將事件處理程序手動添加到按鈕的構造函數(如果你使用的Visual Studio生成它 - Visual Studio將自動添加生成的事件處理程序的按鈕)
this.ButtonPlus.Click += ButtonPlus_Click;
this.ButtonMinus.Click += ButtonMinus_Click;
隨着方法上面您將擁有自己的每項操作功能,這可以幫助您輕鬆/快速地維護您的代碼。
但是,如果您只想爲所有按鈕使用一個事件處理程序,則可以使用Button.Tag
屬性。
創建每一個操作方法,你有
private void ExecutePlus()
{
// Do something when "+" pressed
}
private void ExecuteMinus()
{
// Do something when "+" pressed
}
然後在構造函數中保存的所有操作在記者按鈕的.Tag
財產。
this.ButtonPlus.Tag = ExecutePlus;
this.ButtonMinus.Tag = ExecuteMinus;
// add "general" event handler
var buttons = new[] { this.ButtonPlus, this.ButtonMinus };
foreach(var button in buttons)
{
button.Click += Button_Click;
}
然後創建「一般」點擊處理
private void Button_Click(object sender, EventArgs e)
{
var button = (Button)sender;
Action execute = (Action)button.Tag;
execute();
}
你仍會有分離方法每一個操作,但只有一個事件處理程序,所有按鈕