глава 6

Зауважте: значення перерахування для букв у верхньому регістрі збігаються зі значеннями ASCII-кодів для цих символів (які також збігаються з кодами Unicode). Коди символів, що генеруються цими клавішами, залежать і від стану клавіш Ctrl. Shift і Caps Lock.

Щоб не відходити занадто далеко від практики, розглянемо програму, яка використовує одне із значень перерахування Keys.

Ця програма закриває сама себе при натисканні клавіші X. При цьому клавіша X може бути натиснута одночасно з будь-якими комбінаціями клавіш Shift. Ctrl і Alt. Через збіг значень перерахування з деякими кодами Unicode інструкцію if можна змінити:

Наступна група значень Keys незалежно від стану модифікаторів відповідає цифровими клавішами, розташованим у вигляді горизонтального ряду над клавішами букв:

Перерахування Keys (цифрові клавіші)

Зауважте: це бітові значення. Коди модифікаторів показують, чи були натиснуті клавіші Shift. Ctrl і Alt під час події натискання або відпускання клавіші. Згадайте, що раніше вже наводилися коди ShiftKey. ControlKey і Menu. що відображають стан реальних клавіш Shift. Ctrl або Alt.

Кожна натиснута або відпущена клавіша генерує одна подія. Всі три незмінних властивості об'єкта KeyEventArg - KeyCode. Modifiers і KeyData - відносяться до типу Keys:

KeyCode - ідентифікує натиснуту йди відпущену клавішу, в числі яких можуть бути Shift (Keys.ShiftKey), Ctrl (Keys.ControlKey) або Alt (Keys.Menu);

Modifiers - вказує стан клавіш Shift. Ctrl і Alt під час натискання або відпускання даної клавіші; значенням властивості Modifiers може бути будь-яка комбінація Keys.Shift. Keys.Control або Keys.Alt. або, якщо не натиснута жодна з клавіш-модифікаторів, у Modifier буде значення Keys.None. визначається просто як 0;

KeyData - це комбінація KeyCode і Modifiers.

Нехай, наприклад, ви натиснули клавішу Shift. потім D. після чого відпустили D. а потім - Shift. Нижче в таблиці показані чотири події і властивості об'єкта KeyEventArgs. пов'язаного з цими маніпуляціями:

Перерахування Keys (клавіші-модифікатори)