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< Назад | Оглавление | Далее >

Сайт управляется системой uCoz