C# - 修改button.click事件来传递数据?

时间:2009-11-25 07:06:21

标签: c# events

我以编程方式创建按钮,每个按钮都有一个标记二进制数组。虽然创建我绑定事件Button.Click但我不知道如何添加参数,因为事件处理程序已经准备好了。我需要将按钮的标记传递给该事件调用的方法。

2 个答案:

答案 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