В WinForms только ToolStrip может иметь ContextMenuStrip, а не ToolStripItem.
Поскольку мне нужно ContextMenuStrip, чтобы узнать, к какому пользователю кнопки относится пользователь, у меня есть решение, когда кнопка нажимается мышью (путем получения позиции курсора в ContextMenuStripОткрытие, а затем получение элемента из ToolStrip), но у меня нет решения для выбора клавиатуры.Теоретически, можно попытаться перехватить OnKeyDown ToolStrip и отследить, какой элемент выбран действием пользователя, но на практике, если ToolStrip переполнен, он может стать довольно сложным и, вероятно, ненадежным.
Есть ли какое-либо решение дляthis?
РЕШЕНИЕ:
Я немного поиграл, и вот решение, в обработчике ContextMenuStrip.Opening сделайте это: toolStrip.Items.Cast<ToolStripItem>().Where(x => x.Selected).First()
чтобы получить элемент, который был выбран при нажатии клавиши, чтобы показатьContextMenuStrip.