我以编程方式创建按钮,每个按钮都有一个标记二进制数组。虽然创建我绑定事件Button.Click
但我不知道如何添加参数,因为事件处理程序已经准备好了。我需要将按钮的标记传递给该事件调用的方法。
答案 0 :(得分:7)
您无需传递按钮的标记 - 按钮作为发件人提供,因此您可以直接获取标记:
private void HandleButtonClick(object sender, EventArgs e)
{
Button button = (Button) sender;
object tag = button.Tag;
...
}
另一种方法是使用匿名方法或lambda表达式手动连接事件,这样可以使用更合适的签名调用另一个方法:
button.Click += (s, e) => SaveDocument(someLocalVariable);
在该示例中,someLocalVariable
是连接事件的方法的本地 - 当然它可以是一个实例变量,但是你不需要传递它,因为你无论如何都有访问权限。
答案 1 :(得分:0)
获取此标记
byte[] myData = ((Button)sender).Tag