另一个好方法是为每个按钮设置自己的处理程序。当您双击设计器中的按钮时,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();
}
你仍会有分离方法每一个操作,但只有一个事件处理程序,所有按钮