我想重新定义一个事件,我的意思是,我有这个:
boton.Click += infoApp;
//i think thats similar to: boton.Click = new System.EventHandler(infoApp).
Run Code Online (Sandbox Code Playgroud)
当单击按钮'boton'时,函数/方法'infoApp'触发,此方法如下:
private void infoApp(object sender, EventArgs e)
{
/* my code*/
}
Run Code Online (Sandbox Code Playgroud)
直到这里,evetithing顺利; 但我需要向该方法发送另一个参数:
boton.Click += infoApp(string par)
Run Code Online (Sandbox Code Playgroud)
所以我认为这可行:
private void infoApp(object sender, EventArgs e, string par)
{
/*My code*/
}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
我已经为代表们做了一些事,但我不明白; 我不知道该怎么做才能解决我的问题; 有任何想法吗?
提前致谢
pd:对不起我糟糕的英语,我不是说英语的人.尝试简单解释.我正在使用VS2008.
解决这个问题的一种方法是将事件处理程序包装在一个闭包中:
而不是这一行:
boton.Click += infoApp;
Run Code Online (Sandbox Code Playgroud)
做这个:
string par = "something";
boton.Click += (sender, e) => {
//Now call your specific method here:
infoApp(sender, e, par);
};
Run Code Online (Sandbox Code Playgroud)