0

我有一组动态添加的按钮。随着用户不断单击按钮,新按钮将添加到窗口中。我正在使用一个winforms。我将所有这些按钮的 onclick 事件绑定到同一个函数。我正在使用以下代码。

System.EventHandler myEventHandle= new System.EventHandler(this.Button_Clicked);

创建新的动态按钮后,我使用以下代码添加事件处理程序:

b1.Click += myEventHandle;

现在在 Button_Clicked() 函数中,我想获取调用此事件的 Button。我想禁用此按钮,使其无法再次单击,并且我想要单击的按钮的名称,因为我想根据按钮名称执行各种操作。我是 C# 的新手。

这是我迄今为止尝试过的,但似乎不起作用:

        Button b = sender as System.Windows.Forms.Button;
        b.Font = new Font(b.Font, FontStyle.Bold);
        Console.WriteLine(""+b.Name);
        b.Enabled = false;
4

2 回答 2

3

使用事件的发送者

if(sender is Button)
{
    Button b = sender as Button;
    b.Enabled = false;
    ///something = b.Name;
}
于 2013-09-19T07:43:08.117 回答
2

好吧,你的Button_Clicked方法必须看起来像

void Button_Clicked(object sender, EventArgs e) {
  Button clickedButton = (Button)sender;//if sender is always a Button
  clickedButton.Enabled = false;
}
于 2013-09-19T07:42:16.580 回答