Зачем использовать побитовые операторы для проверки щелчков мыши? - PullRequest
1 голос
/ 11 июля 2010

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

if (e.Button == MouseButtons.Right) {}

Но я видел, как люди так делают.Может кто-нибудь сказать мне, почему они делают это таким образом?В чем преимущество?

if ((e.Button & MouseButtons.Right) == MouseButtons.Right) {}

1 Ответ

3 голосов
/ 11 июля 2010

Я не вижу смысла использовать выражение (e.Button & MouseButtons.Right) == MouseButtons.Right в MouseDown обработчике событий, но это имеет больше смысла в MouseMove обработчике событий.Когда пользователь перемещает курсор над элементом управления с несколькими нажатыми кнопками, этот код определяет, нажата ли правая кнопка мыши (другие кнопки также могут быть нажаты), а e.Button == MouseButtons.Right означает, что нажата только правая кнопка.

...