4

我想重新定义一个事件,我的意思是,我有这个:

boton.Click += infoApp;
//i think thats similar to: boton.Click = new System.EventHandler(infoApp).

当点击按钮'boton'时,函数/方法'infoApp'触发,这个方法是这样的:

private void infoApp(object sender, EventArgs e)
{
/* my code*/
}

到这里为止,一切都很顺利;但我需要向该方法发送另一个参数:

boton.Click += infoApp(string par)

所以我认为这可以工作:

private void infoApp(object sender, EventArgs e, string par)
{
/*My code*/
}

但事实并非如此。

我读过代表之类的东西,但我不明白;我不知道该怎么做才能解决我的问题;有任何想法吗?

提前致谢

pd:对不起,我的英语很糟糕,我不会说英语。尽量简单解释。我正在使用VS2008。

4

1 回答 1

9

解决此问题的一种方法是将事件处理程序包装在闭包中:

而不是这一行:

boton.Click += infoApp;

做这个:

string par = "something";

boton.Click += (sender, e) => {
  //Now call your specific method here:
  infoApp(sender, e, par);
};
于 2012-05-09T14:10:48.553 回答