Если у вас есть только один уровень пунктов меню, вы всегда можете получить доступ к SourceControl
пункта меню, по которому щелкнули:
Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem.Click
Dim clickedPanel = DirectCast(DirectCast(DirectCast(sender,
ToolStripMenuItem).Owner,
ContextMenuStrip).SourceControl,
Panel)
'Use clickedPanel here.
End Sub
Если у вас несколько уровней пунктов меню, то ошибка означает что SourceControl
не всегда будет заполняться, поэтому вам нужно предварительно установить его, чтобы быть уверенным:
Private clickedPanel As Panel
Private Sub ContextMenuStrip_Opened(sender As Object, e As EventArgs) Handles ContextMenuStrip.Opened
clickedPanel = DirectCast(DirectCast(sender,
ContextMenuStrip).SourceControl,
Panel)
End Sub
Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem.Click
'Use clickedPanel here.
End Sub