глава 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 (клавіші-модифікатори)