C#如何为多个按钮使用一个单击事件处理程序

Bla*_*fix 1 c#

可能重复:
C#发送按钮点击同一个对象

我的项目中有很多按钮.为了使我更短的程序通过编辑Designer.cs文件并将每次单击指向我的方法,使每次单击按钮都使用相同的"Button_click"方法.

 this.button1.Click += new System.EventHandler(this.Mymethod);
Run Code Online (Sandbox Code Playgroud)

如何识别Mymethod方法中按下的按钮?

谢谢!

age*_*t-j 7

MyMethod必须以这种方式声明:

void Mymethod (object sender, EventArgs e)
{
   if (sender == btn1)
      MessageBox.Show ("Button1");
}
Run Code Online (Sandbox Code Playgroud)

使用sender参数.这是您的按钮(引发事件的对象).


Dav*_*vid 5

点击处理程序的结构通常如下:

protected void MyButton_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

在这,你正在寻找的是object sender.这将是发送click事件的控件的引用.它是盒装的object但是如果你知道它的类型(在你的情况下你说它们都是按钮)那么你可以把它投射:

var myButton = (Button)sender;
Run Code Online (Sandbox Code Playgroud)