[英]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.