Я использую a ContextMenuStrip
для нескольких средств управления и я пытаюсь выяснить лучший способ получить контроль, на который на самом деле нажали для открытия Context Menu. Отправитель просто дает ToolStripMenuItem
ссылка, которая имеет свойство Owner, на которое это ссылается 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
Я нашел подобное сообщение об этом, но это упоминает, что использовало a SourceControl
свойство, на котором я не вижу здесь.
Я использую Visual Studio 2008, winforms VB.Net.
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
Ваш отправитель является настроенным сейсменом - бросить его.
Его владелец - это контекстное изменение - получить его.
SourceControl - это свойство на контекстном объеме и ссылается на последний контроль, из которого было отображено контекстмена.