在我的C#项目中,我正在创建一个Hangman游戏,其中包含一组按钮,其中包含从A到Z的字母。单击时所有这些按钮将执行相同的方法。 我不想逐个为每个事件创建一个事件处理程序。 那么如何为所有这些按钮创建一个SINGLE事件处理程序呢?
答案 0 :(得分:6)
为所有按钮订阅相同的处理程序,并使用sender
获取引发事件的按钮:
void Button_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
// use Name or Tag of button
}
如果您的按钮被命名为字母A
.. Z
,那么您可以使用button.Name
来获取信件。如果按钮的名称类似于buttonA
... buttonZ
,则可以从button.Name
获取子字符串以获取相关字母(或button.Name.Last()
)。如果按钮的名称与字母表无关,则可以使用按钮的Tag
属性来设置并获取分配给每个按钮的字母。
答案 1 :(得分:1)
假设你有button1,button2,button3。您可以将所有按钮单击事件指向设计页面上的相同方法:
或在加载事件中
button1.Click+=button_Click;
button2.Click+=button_Click;
button3.Click+=button_Click;
and you write the method
private void button_Click(object sender, EventArgs e)
{
var button=sender as Button;
// your code
}
答案 2 :(得分:0)
像
这样的东西private void Button_Click(object sender, EventArgs e)
{
Button b = (Button) sender;
//button name
}