Как Вы получаете контроль, который был нажат для открытия ContextMenuStrip?

Я использую 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.

10
задан Community 23 May 2017 в 12:14
поделиться

2 ответа

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
23
ответ дан 3 December 2019 в 15:35
поделиться

Ваш отправитель является настроенным сейсменом - бросить его.
Его владелец - это контекстное изменение - получить его.

SourceControl - это свойство на контекстном объеме и ссылается на последний контроль, из которого было отображено контекстмена.

6
ответ дан 3 December 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: