簡體   English   中英

C#如何使用EventHandler?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM