获取上下文菜单源代码控制名称

时间:2016-12-03 14:37:26

标签: vb.net contextmenu

我试图获取上下文菜单的源代码管理名称。当你运行ToolStripMenuItem和ContextMenuStrip时,它工作正常,但我也有一个下拉ToolStripMenuItem,它不会工作相同。我尝试了使用CastStripDropDownItem,ToolStripDropdown,ToolStripMenuItem的不同方法,但我总是得到"对象引用没有设置为对象的实例。"错误。这里尝试了一些(两个相同的错误):

Private Sub MicrosoftWordToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MicrosoftWordToolStripMenuItem.Click

  'Dim BtnbWord As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
  'Dim BtnNew As ToolStripMenuItem = CType(BtnWord.OwnerItem, ToolStripMenuItem)
  'Dim Kontexst_M As ContextMenuStrip = CType(BtnNew.Owner, ContextMenuStrip)

   Dim BtnWord As ToolStripDropDownItem = CType(sender, ToolStripDropDownItem)
   Dim BtnNew As ToolStripDropDown = CType(BtnWord.Owner, ToolStripDropDown)
   Dim Kontext_M As ContextMenuStrip = CType(BtnNew.OwnerItem.Owner, ContextMenuStrip)

   'I need source control name to handle my click event of this toolstrip item    
   If Kontext_M.SourceControl.Name= "Listview1" then
           Msgbox("Listview1")
   End If

关于如何获取源代码管理名称的任何想法?...如果您想知道,我需要这个来处理右键单击以创建Word文档:

enter image description here

1 个答案:

答案 0 :(得分:0)

这就是我用来获取“子上下文菜单”的源代码控制的内容:

 Dim sc As Control = CType(CType(sender.Owner, ToolStripDropDownMenu).OwnerItem.Owner, ContextMenuStrip).SourceControl