如何获得被单击以打开ContextMenuStrip的控件?

Sha*_*ard 10 vb.net event-handling contextmenustrip visual-studio-2008

我正在使用ContextMenuStrip多个控件,我试图找出获得实际点击的控件打开上下文菜单的最佳方法.发件人只提供ToolStripMenuItem引用,它具有引用该引用的所有者属性ContextMenuStrip,但我无法弄清楚如何判断单击来自哪个控件.必须有一个简单的方法来检查这个,对吗?我在ToolStripMenuItem点击事件中检查它.

Friend WithEvents mnuWebCopy As System.Windows.Forms.ToolStripMenuItem
...
Private Sub mnuWebCopy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuWebCopy.Click
Run Code Online (Sandbox Code Playgroud)

我发现了一篇关于这个的类似帖子,但提到使用SourceControl我在这里看不到的属性.

我正在使用Visual Studio 2008,VB.Net winforms.

Tim*_*ine 23

Private Sub mnuWebCopy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuWebCopy.Click

Dim myItem As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
Dim cms As ContextMenuStrip = CType(myItem.Owner, ContextMenuStrip)

MessageBox.Show(cms.SourceControl.Name)

End Sub
Run Code Online (Sandbox Code Playgroud)


Jay*_*Jay 6

您的发件人是ToolStripMenuItem - 投了它.
它的拥有者是一个ContextMenuStrip - 得到它.

SourceControl是ContextMenuStrip上的属性,它引用显示ContextMenuStrip的最后一个控件.