Используйте правую кнопку мыши с помощью кнопки Windows Forms - PullRequest
2 голосов
/ 14 июля 2009

Я пишу приложение, в котором пользователь должен иметь возможность изменять действие кнопки.

Пользователь должен щелкнуть правой кнопкой мыши по кнопке и выбрать параметр во всплывающем контекстном меню. Как только выбор будет сделан, кнопка выполнит другое действие, когда пользователь использует обычный щелчок.

Я уже получил событие «Click», работающее для обычного нажатия кнопки, однако обработчик события «MouseClick» работает неправильно.

Событие «MouseClick» активируется при обычных щелчках левой кнопкой мыши, но никогда не вызывается при щелчке правой кнопкой мыши.

Есть ли какая-либо обработка событий по умолчанию, которая игнорирует этот щелчок правой кнопкой мыши?

Ответы [ 5 ]

4 голосов
/ 14 июля 2009

Извините, что это серьезный пользовательский интерфейс. Возможно, более разумно было бы добавить небольшой выпадающий список рядом с кнопкой.

Возможно, что-то вроде этого?
http://www.codeproject.com/KB/buttons/SplitButton.aspx

3 голосов
/ 14 марта 2012

несомненно, было бы лучше реализовать его в событии MouseDown, а не в событии MouseUp. я не понимаю, как это сильно отличается от события MouseClick

редактировать: только что попробовал, и это работает удовольствие:)

3 голосов
/ 14 июля 2009

Если вы хотите отобразить контекстное меню с действиями на выбор, этого должно быть достаточно, чтобы присвоить ContextMenuStrip свойству ContextMenuStrip. Для этого обычно не нужно вручную обрабатывать события мыши.

2 голосов
/ 14 июля 2009

В Button (и некоторых других элементах управления) событие MouseClick вызывается только для левой кнопки. См. MSDN .

Если вы хотите узнать о правильной кнопке, ответьте на событие MouseUp - хотя, как отмечали другие авторы, это не очень хорошая идиома пользовательского интерфейса.

0 голосов
/ 13 февраля 2014

Используйте событие Mouse UP ... проверьте, что Button.X и Button.Y находятся в пределах размера кнопки, в противном случае вы отодвинули мышь от кнопки. Махровый G

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