2015-12-08 2 views
3

Я пытаюсь создать простую форму приложения Windows в C#, которая будет считать левый клик правой кнопкой мыши. У меня есть копия следующий код, который обнаружить событие щелчка:Захват события щелчка мыши в C#

private void mouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Right) 
    { 
     Trace.WriteLine("Mouse clicked"); 
    } 
} 

И в методе формы I добавить this.MouseClick += mouseClick;. Моя проблема в том, что эта функция активируется каждый раз, когда клик выполняется, является ли правый или левый клик. Почему это?

+1

Вы имеете в виду «функция вызывается независимо от кнопки "или" логическое выражение оценивается как true, независимо от кнопки "? – kai

ответ

5

Это по дизайну. MouseClick Событие возникает при каждом нажатии - не имеет значения, вызвано ли оно левой или правой кнопкой.

Для того, чтобы отличить левую кнопку от правой данного обработчика события - вы должны проверить e.Button свойства точно так, как это было сделано в коде:

if (e.Button == MouseButtons.Right) 
+0

: D. Да, это если в коде m. Однако он различает два клика. –

+0

@JoseRamon Вы пытались его отладить? Каково значение 'e.Button' в случае нажатия левой кнопки и правой кнопки? –

+0

Кнопка -> Левые клики - 1 Дельта - 0 Базовая x, y, кнопка - левая –

Смежные вопросы