netlib.narod.ru | < Назад | Оглавление | Далее > |
Вовсе не обязательно обрабатывать событие KeyDown или KeyUp, чтобы определить, нажата ли одна из клавиш Shift, Ctrl или Alt. Текущее состояние трех клавиш-модификаторов можно получить при помощи статического свойства Control.ModifierKeys:
Статические свойства объекта Control (выборочно)
Тип | Свойство | Доступ | Описание |
Keys | ModifierKeys | Чтение | Указывает состояние клавиш Shift, Ctrl и Alt |
Допустим, программа должна выполнить другое действие, если нажата клавиша Shift, Ctrl или обе эти клавиши, но не Alt. Прежде всего надо вызвать статическое свойство ModifierKeys:
Keys keysMod = Control.ModifierKeys;
Затем — проверить возможные комбинации клавиш, представляющие интерес для программы:
if (keysMod == (Keys.Shift | Keys.Control)) { // Нажаты клавиши Shift и Ctrl } else if (keysMod == Keys.Shift) { // Нажата только клавиша Shift } else if (keysMod == Keys.Control) { // Нажата только клавиша Ctrl }
He исключено, что свойство ModifierKeys придется использовать не во время обработки событий KeyDown или KeyUp, а, скажем, при обработке события мыши. Все мы видели программы, по-разному интерпретирующие щелчки и движения мыши в зависимости от нажатий Shift или Ctrl. В такой ситуации полезно свойство ModifierKeys. Примером может служить программа CanonicalSpline из главы 13.
К сожалению, проверить состояние клавиш Caps Lock, Num Lock и Scroll Lock невозможно.
netlib.narod.ru | < Назад | Оглавление | Далее > |