Получение ToolStripItem, который инициировал ContextMenuStrip с клавиатуры - PullRequest
0 голосов
/ 30 июля 2011

В WinForms только ToolStrip может иметь ContextMenuStrip, а не ToolStripItem.

Поскольку мне нужно ContextMenuStrip, чтобы узнать, к какому пользователю кнопки относится пользователь, у меня есть решение, когда кнопка нажимается мышью (путем получения позиции курсора в ContextMenuStripОткрытие, а затем получение элемента из ToolStrip), но у меня нет решения для выбора клавиатуры.Теоретически, можно попытаться перехватить OnKeyDown ToolStrip и отследить, какой элемент выбран действием пользователя, но на практике, если ToolStrip переполнен, он может стать довольно сложным и, вероятно, ненадежным.

Есть ли какое-либо решение дляthis?

РЕШЕНИЕ:

Я немного поиграл, и вот решение, в обработчике ContextMenuStrip.Opening сделайте это: toolStrip.Items.Cast<ToolStripItem>().Where(x => x.Selected).First() чтобы получить элемент, который был выбран при нажатии клавиши, чтобы показатьContextMenuStrip.

1 Ответ

1 голос
/ 30 июля 2011

Я немного поиграл, и вот решение, в обработчике ContextMenuStrip.Opening сделайте это: toolStrip.Items.Cast<ToolStripItem>().Where(x => x.Selected).First() чтобы получить элемент, который был выбран при нажатии клавиши, чтобы показать ContextMenuStrip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...