2014-10-20 80 views
1

我正在使用c#,我有一個MenuStrip控件,但我不知道如何識別它被點擊的項目。例如,我曾用一種或兩種方法(如「btnActions_click()」或「btnNavigation_click()」)對所有點擊(按鈕)事件進行分組。然後,在方法內部,我通過解析發件人作爲按鈕來識別按鈕,並將它放在一個按鈕var上,然後檢查該按鈕var的名稱是否等於「btnFoo」或「btnBar」。如何知道正在點擊一個MenuStrip的哪個項目?

因此,在這種情況下,我怎麼能知道單擊哪個MenuStrip控件項目,以便只用一種方法對所有點擊事件進行分組?

我道歉如果我的英文不正確。如果你不能理解我,我可以再試一次或者發佈一些代碼。

謝謝。

編輯:我沒有發佈任何代碼,因爲我認爲這個問題沒有必要,但有人建議我這樣做,所以我會做。以下是我所做的識別按鈕被點擊的例子。

private void btnNavegation_Click(object sender, EventArgs e) 
    { 
     Button btn = sender as Button; 

     if (btn.Name == "btnNext") 
      //go to next item of the list 
     else if (btn.Name == "btnPrevious") 
      //go to previous item of the list 
    } 
+0

發佈一些代碼,總是張貼代碼。最好能夠輕鬆運行的東西。 – AndersNS 2014-10-20 11:10:46

回答

1

我認爲你需要訂閱ItemClicked事件(從ToolStrip繼承),而不是訂閱Click事件(從Control繼承)。

通過微軟的文檔提供的例子告訴你如何確定點擊項目在每次調用(ToolStripItemClickedEventArgs::ClickedItem):

private void ToolStrip1_ItemClicked(Object sender, ToolStripItemClickedEventArgs e) 
{ 
    System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); 
    messageBoxCS.AppendFormat("{0} = {1}", "ClickedItem", e.ClickedItem); 
    messageBoxCS.AppendLine(); 
    MessageBox.Show(messageBoxCS.ToString(), "ItemClicked Event"); 
} 
相關問題