2011-05-02 51 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