让我们看看下面的代码,其中我正在创建一个按钮列表。
List<System.Windows.Forms.Button> buttons = new List<System.Windows.Forms.Button>();
for(int i = 0; i < 5; i++) {
buttons.Add( System.Windows.Forms.Button>() );
buttons[i].Name = "button_" + i.ToString();
this.Controls.Add(buttons[i]);
buttons[i].Click += new System.EventHandler(this.Bt_windowClick);
}
下一部分是我困惑的地方。当这个委托被调用时,我想告诉我实际点击了哪个按钮。我该怎么做?
void Bt_windowClick(object sender, EventArgs e)
{
// I would like to get the name of the button that was clicked
}
提前感谢您的支持!
答案 0 :(得分:4)
发件人对象是一个按钮,它引发了事件。因此,只需将其转换为Button
类型:
void Bt_windowClick(object sender, EventArgs e)
{
Button button = (Button)sender;
// use button
MessageBox.Show(button.Name);
}