C# 在c语言中,如何参数化事件#

C# 在c语言中,如何参数化事件#,c#,events,C#,Events,我想重新定义一个事件,我的意思是,我有: 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;
//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*/
}
但事实并非如此

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

提前谢谢


对不起,我的英语很糟糕,我不会说英语。尽量简单地解释。我使用的是VS2008。

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

而不是这一行:

boton.Click += infoApp;
这样做:

string par = "something";

boton.Click += (sender, e) => {
  //Now call your specific method here:
  infoApp(sender, e, par);
};

您所需的参数来自哪里?如果它是表单的另一个控件上的属性,只需在事件处理程序?+1中获取该属性,实际上您甚至不需要包含
对象
事件参数
,除非您希望清楚。