我想点击上下文菜单项做一些事情,所以我会这样做:
cmsItemOne.Click += new EventHandler(someFunction);
但是,我有一个只需要传入自定义参数的函数:
private void customFunction(string someText, int someNumber)
那么如何订阅cmsItemOne.Click
到customFunction
并传递参数。
例如,(没有工作)
string theString = "Hello world";
int theInt = 5;
cmsItemOne.Click += customFunction(theString, theInt);
答案 0 :(得分:3)
使用闭包
string theString = "Hello world";
int theInt = 5;
cmsItemOne.Click += (s,e) => customFunction(theString, theInt);
How to: Subscribe to and Unsubscribe from Events (C# Programming Guide)
答案 1 :(得分:0)
您可以使事件处理程序方法使用多个参数调用该函数。
cmsItemOne.Click += new EventHandler(someFunction);
private void buttonGenTool_Click(object sender, EventArgs e)
{
customFunction(someText, someNumber);
}
private void customFunction(string someText, int someNumber)
{
//Your function code;
}