Я определил контекстное меню ContextMenuStrip в IDE Visual Studio C # и закодировал программу так, чтобы контекстное меню успешно всплывало, когда пользователь щелкает правой кнопкой мыши объект на экране.Пользователь может выбрать элемент из контекстного меню, и код успешно определяет, какой элемент контекстного меню был выбран пользователем.Все идет нормально.Проблема в том, что контекстное меню принимает щелчок правой кнопкой мыши в качестве механизма выбора пункта контекстного меню.Я заметил это, когда я случайно щелкнул правой кнопкой мыши по объекту на экране ... Меню появилось с первым щелчком мыши, и немедленный второй щелчок в итоге выбрал пункт контекстного меню, который оказался закрашенным под курсором мыши.
Мои поиски привели только к тому, что контекстное меню всплыло только в ответ на щелчок правой кнопкой мыши, но не к тому, как действовать (или игнорировать) щелчок правой кнопкой мыши во время отображения меню.
Вот команда, которая отображает контекстное меню:
ctxMenu.Show(this, pt);
, где «this» - это форма, а «pt» - это точка в форме, где была нажата мышь.
А вот фрагмент кода, который срабатывает при выборе элемента контекстного меню:
private void ctxMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
// Make context menu go away
ctxMenu.Hide();
switch (e.ClickedItem.Text)
{
case "blah blah blah"
...
break;
}
}
Контекстные меню в продуктах Microsoft Office, таких как Word и Excel, игнорируют щелчки правой кнопкой мыши, даже для отображения подменю.Есть ли способ заставить C # ContextMenuStrip игнорировать щелчки правой кнопкой мыши тоже?