Обработка щелчка правой кнопкой мыши внутри MenuItem - PullRequest
0 голосов
/ 11 мая 2010

Можно ли проверить щелчок правой кнопкой мыши по пункту меню в .NET?

Похоже, что фреймворк не представляет его как событие, но я видел другие приложения (например, Chrome и Firefox), которые позволяют вам вызвать контекстное меню, вызываемое правой кнопкой мыши, для пункта меню. Предположительно с небольшой магией цикла событий вы можете сделать то же самое в .NET, верно?

РЕДАКТИРОВАТЬ : Я говорю о программировании приложений для настольных компьютеров, а не ASP.NET.

Ответы [ 4 ]

1 голос
/ 11 мая 2010

Это неестественный акт. Меню предназначены для автоматического раскрытия, когда они теряют фокус. Контекстное меню примет фокус, конец меню. MenuStrip будет бороться с вами изо всех сил, я не видел, чтобы это было сделано.

0 голосов
/ 09 ноября 2016

Это не совсем то, о чем просили, но это достойный компромисс и не слишком большой отрезок с точки зрения стандартов пользовательского интерфейса. Меню WinForms, похоже, даже не реагируют на щелчки правой кнопкой мыши, поэтому используйте вместо этого наличие / отсутствие нажатой клавиши Shift.

private void MenuClick(object sender, EventArgs args)
{
    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) DoSpecialStuff();
    else DoNormalStuff();
}
0 голосов
/ 03 февраля 2012

В Click событии вы можете обнаружить щелчок правой кнопкой мыши с помощью:

Control.MouseButtons == MouseButtons.Right;

Хотя вы можете проверить это также в событии Closing, чтобы предотвратить возникновение события Close.

0 голосов
/ 11 мая 2010

В Winforms я не уверен, я так не думаю, событие Click является общим EventHandler

В WPF Вы можете, Событие OnClick проходит в объекте System.Windows.Input.MouseEventArgs, который имеет такие свойства, как .MiddleButton .RightButton

Для ASP.NET Вам нужно использовать javascript, чтобы поймать щелчок правой кнопкой мыши и отправить секретную форму, инициировать постбэк или использовать AJAX.

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