2011-05-02 52 views
-1

假設我的上下文菜單與3個標籤控件相關聯。當我將右鍵單擊這些標籤時,會出現上下文菜單。我想從上下文菜單中捕獲單擊事件,即在哪個標籤上調用上下文菜單單擊事件。我試過但失敗了。與上下文菜單相關的問題

void MyContextMenu_Click(object sender, EventArgs e) 
    { 
     if (sender.GetType() == typeof(Label)) 
     { 
      if (((Label)sender).Name.ToUpper() == "LBLACCOUNTREFERENCE") 
      { 
       Clipboard.Clear(); 
       Clipboard.SetData(DataFormats.OemText, (object)((Label)sender).Text); 
      } 
     } 
     else 
     { 
      Clipboard.Clear(); 
      Clipboard.SetData(DataFormats.OemText, (object)this.localJob.JobPart.OEReference); 
     } 
    } 

請指導我。

+0

將來,請爲平臺添加標籤('winforms') – SLaks 2011-05-02 17:31:22

回答

1

sender參數指定被點擊的菜單項。
您正在尋找SourceControl property,它給你打開ContextMenuStrip的控制權。

檢查contextMenu.SourceControl.Text

+0

我正在使用ContextMenu而不是ContextMenuStrip。如果我對許多控件使用相同的ContextMenu,那麼我如何決定用戶右鍵單擊ContextMenu單擊事件中的哪個控件。我知道很容易從ContextMenuStrip.SourceControl中檢測到,但我沒有使用ContextMenuStrip。 – Mou 2011-05-03 05:56:16

+0

你應該。 'ContextMenuStrip'更好。但是,'ContextMenu'具有相同的屬性。 http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenu.sourcecontrol.aspx – SLaks 2011-05-03 11:38:07