如何向按钮添加其他参数单击EventHandler?

时间:2015-11-11 09:16:42

标签: c# eventhandler

在C#中,如何向按钮事件调用添加其他属性的最佳方法是什么?

以下是ProfilePictureSetupViewController的代码:

EventHandler

以下是button.Click += new EventHandler(button_Click); 的代码:

button_Click

如果我想在private void button_Click(object sender, EventArgs e) { } 函数参数中添加PropertyGrid参数,那么最好的方法是什么?

我希望这样做,因为button_Click代码位于具有button.Click参数的函数中,而在PropertyGrid函数中,我需要设置button_Click选定的对象。仅在单击PropertyGrid按钮时设置此项。

如果我将按钮的标记设置为button.Click对象,如何在PropertyGrid代码中检索此标记对象?

从对象调用button_Click事件,发件人是对象,而不是按钮。

我可以请一些代码帮助吗?

1 个答案:

答案 0 :(得分:4)

你无法说服Button它应该知道任何有关PropertyGrid的信息。当它触发Click事件时,它只能告诉你它知道什么。这是一成不变的。

通过使用lambda表达式,您可以轻松解决此问题,它可以捕获PropertyGrid参数值并将其传递给方法。大致是:

    private void SubscribeClick(PropertyGrid grid) {
        button.Click += new EventHandler(
            (sender, e) => button_Click(sender, e, grid)
        );
    }