我只是在创建一个ContextMenu ..
在这一行,我不知道我将把它放在第三个参数中(或者更好:我如何形成它 - -syntaxly-):
(contextMenuStrip.Items[0] as System.Windows.Forms.ToolStripMenuItem).DropDownItems.Add(contextUnterMenuStrip.Items.Add(exe),null, HERE);
在'这里'我必须设置EventHandler
onClick
通过示例我得到了这个方法:
public void DoSomething()
{
//...
}
我怎么称这个方法? (通过Eventhandler?)或者我必须制作一个方法:
private void button_Click(object sender, RoutedEventArgs e)
{
//...
}
答案 0 :(得分:2)
不要“调用”该方法,而是取其地址。这意味着省略()
private void menuItem1_Click(object sender, EventArgs e)
{
//...
}
// your code, I think it misses a few ')'
... (contextMenuStrip.Items[0] as System.Windows.Forms.ToolStripMenuItem)
.DropDownItems.Add(contextUnterMenuStrip.Items
.Add(exe),null, menuItem1_Click);
答案 1 :(得分:1)
尽可能see here,回调必须有以下原型:
public delegate void EventHandler( Object sender, EventArgs e )
所以你的方法DoSomething看起来像:
private void DoSomething(object sender, EventArgs e)
{
//...
}
答案 2 :(得分:0)
您可以使用Linq库创建匿名事件处理程序,并以这种方式调用您的方法。这可以是一种很好的快速做事方式(特别是如果它只是一个测试项目)。但如果你开始广泛使用它,可能会很难阅读它。
这方面的一个例子是:
var menuItem1 = new MenuItem();
menuItem1.Click += (sender, e) => DoSomething();
的更多信息,请参阅此处