3

通过 Visual Studio,您可以轻松地为事件(按钮单击等)创建方法。有没有一种方法可以为多个事件创建方法,例如在单击三个按钮之一或输入多个文本框之一时运行的方法?

4

4 回答 4

5

一旦您创建了该方法,您应该能够将它用于具有类似签名的任何其他事件。

在设计器中,不要双击该方法,而是下拉列表,找到可以分配给您选择的事件的任何现有事件处理程序。

像@lcfseth 注释一样,您可以通过参数确定哪个特定控件发送了消息object sender

于 2012-05-25T21:33:53.847 回答
1

是的,您可以将许多事件绑定到同一个方法(相同签名的事件)

firstEvent += MyMethod;
secondEvent += MyMethod
于 2012-05-25T21:35:14.527 回答
0

当您将函数绑定到对象的事件时,您实际上是在将委托(即指向函数的指针)传递给其事件处理程序。您可以根据需要将相同的函数绑定到任意数量的对象的事件处理程序,只要所需委托的签名对应。

Button1.Click += new EventHandler(this.AnyButton_Click);
Button2.Click += new EventHandler(this.AnyButton_Click);
Button3.Click += new EventHandler(this.AnyButton_Click);

如果您需要根据单击的按钮对“sender”对象运行特定操作,请注意函数的参数“sender”是您单击的按钮,因此如果您需要处理按钮对象,请记住将其拆箱特定的类(即,将其转换为 Button 或任何类型)。

void AnyButton_Click(Object sender, EventArgs e)
{
    Button clickedButton = (Button)sender; // unbox the sender
    MessageBox.Show("You just clicked button " clickedButton.Text);
}

( MSDN )

于 2012-05-25T21:35:14.953 回答
0

您可以将相同的处理程序分配给多个控件的 Click 事件。sender 指向导致事件的控件。

于 2012-05-25T21:35:22.217 回答