Определите, была ли нажата клавиша-модификатор

Я знаю, как узнать, какая клавиша-модификатор была нажата в C #, но не знаю, как проверить, была ли нажата какая-либо клавиша-модификатор. Мне нужно проверить это в событии KeyUp, возможно ли это иначе, чем сделать что-то вроде if(e.KeyCode != Keys.Control && e.KeyCode != Keys.Alt && ...)? Спасибо.


person haluzak    schedule 08.04.2011    source источник


Ответы (3)


if ((Control.ModifierKeys & Keys.Shift) != 0) 

поможет вам определить, была ли нажата клавиша-модификатор (например, ctrl или shift). Проверьте сообщение ниже для справки:

Как определить нажатую клавишу?

person reggie    schedule 08.04.2011
comment
Замените оператор && правильным оператором &. (Ошибка: оператор '&&' нельзя применить к операндам типа 'System.Windows.Forms.Keys' и 'System.Windows.Forms.Keys') - person Alex Vang; 22.11.2012

Чтобы убедиться, что клавиша-модификатор не нажата, вы можете проверить, равно ли ModifierKey Keys.None.

if (ModifierKeys == Keys.None) ...
person caycothu    schedule 03.12.2015

Класс KeyEventArgs имеет свойства, которые вы можете проверить. . Например, чтобы узнать, была ли нажата клавиша Alt, вы можете написать:

if (e.Alt)
{
    // Alt key was pressed
}
person Jim Mischel    schedule 08.04.2011