В настоящее время я работаю над проектом, в котором в какой-то момент пользователь может щелкнуть правой кнопкой мыши по кнопке, которая вызывает contextMenuStrip. Я уже могу точно найти владельца по этой полосе и манипулировать кнопкой, нажимаемой следующим образом:
Dim myItem As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
Dim cms As ContextMenuStrip = CType(myItem.Owner, ContextMenuStrip)
Dim buttonPressed As DataButton = DirectCast(cms.SourceControl, DataButton)
Но теперь самое сложное. В этом contextmenuStrip у меня есть меню DropDown с несколькими пунктами. Я предполагаю, что вы сможете продвигаться вверх по лестнице, выполняя касты, как указано выше, в порядке
ToolStripDrowpDownItem > ToolStripDropDownMenu > ToolStripMenuItem > ContextMenuStrip
К сожалению, когда я пытаюсь получить управление исходным кодом из этой строки меню, оно ничего не возвращает. Любые идеи о том, как я могу получить кнопку, которая была нажата из этого инструмента StripMenuItem? Мой текущий код выглядит следующим образом (в котором sourceControl равен Nothing)
Dim myItem As ToolStripDropDownItem = CType(sender, ToolStripDropDownItem)
Dim dropDown As ToolStripDropDownMenu = CType(myItem.Owner, ToolStripDropDownMenu)
Dim menuItem As ToolStripMenuItem = CType(dropDown.OwnerItem, ToolStripMenuItem)
Dim cms As ContextMenuStrip = CType(menuItem.Owner, ContextMenuStrip)
Dim buttonPressed As DataButton = DirectCast(cms.SourceControl, DataButton)
Есть какие-нибудь идеи о том, как делать то, что я делал в этом первом методе, а просто двигаться вверх и вниз по лестнице?