动态确定点击事件的来源
本文关键字:事件 动态 | 更新日期: 2023-09-27 18:32:00
我有一组动态添加的按钮。当用户不断单击按钮时,新按钮将添加到窗口中。我正在使用Winforms。我将所有这些按钮的 onclick 事件绑定到同一个函数。我正在使用以下代码。
System.EventHandler myEventHandle= new System.EventHandler(this.Button_Clicked);
创建新的动态按钮后,我使用以下代码添加事件处理程序:
b1.Click += myEventHandle;
现在在函数 Button_Clicked() 中,我想获取调用此事件的按钮。我想禁用此按钮,以便无法再次单击它,并且我想要单击的按钮的名称,因为我想根据按钮名称执行各种操作。我是 C# 的新手。
这是我到目前为止尝试过的,但似乎不起作用:
Button b = sender as System.Windows.Forms.Button;
b.Font = new Font(b.Font, FontStyle.Bold);
Console.WriteLine(""+b.Name);
b.Enabled = false;
使用事件的发送方
if(sender is Button)
{
Button b = sender as Button;
b.Enabled = false;
///something = b.Name;
}
好吧,您的Button_Clicked
方法必须如下所示
void Button_Clicked(object sender, EventArgs e) {
Button clickedButton = (Button)sender;//if sender is always a Button
clickedButton.Enabled = false;
}