![](/img/trans.png)
[英]C# EventHandler : How to handle EventHandler in client application?
[英]C# How to use the EventHandler?
我正在创建一个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)
{
//...
}
不要“调用”该方法,而要获取其地址。 这意味着省略()
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);
如您在此处看到的 ,回调必须具有以下原型:
public delegate void EventHandler( Object sender, EventArgs e )
因此,您的方法DoSomething必须看起来像:
private void DoSomething(object sender, EventArgs e)
{
//...
}
您可以使用Linq库创建匿名事件处理程序,然后以这种方式调用您的方法。 这是做某事的好方法(尤其是只是一个测试项目时)。 但是,如果您开始广泛使用它,可能很难阅读它。
例如:
var menuItem1 = new MenuItem();
menuItem1.Click += (sender, e) => DoSomething();
有关使用Linq的更多信息,请参见此处: http : //msdn.microsoft.com/library/bb308959.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.