- Событие OnKeyDown
Событие OnKeyDown
Событие OnKeyDown наступает, если компонент находится в фокусе, при нажатии пользователем любой клавиши, включая функциональные и специальные, такие как <Shift>, <Alt> и <Ctrl>. Кроме обычного параметра Sender, указывающего на компонент, в котором произошло событие, в обработчик события передаются такие параметры, как Key и Shift. Параметр Key позволяет определить код нажатой клавиши клавиатуры.
Для большинства клавиш имеются также символьные имена API Windows. Коды клавиш и соответствующих им символьных имен приведены в табл. 22.2.
Таблица 22.2. Коды клавиш и соответствующих им символьных имен
На основном поле клавиатуры
| Клавиша | Десятичное значение кода | Шестнадцатеричное значение кода | Символьное имя |
| F1 | 112 | 0x70 | VK_F1 |
| F2 | 113 | 0x71 | VK_F2 |
| F3 | 114 | 0x72 | VK_F3 |
| F4 | 115 | 0x73 | VK_F4 |
| F5 | 116 | 0x74 | VK_F5 |
| F6 | 117 | 0x75 | VK_F6 |
| F7 | 118 | 0x76 | VK_F7 |
| F8 | 119 | 0x77 | VK_F8 |
| F9 | 120 | 0x78 | VK_F9 |
| F10 | 121 | 0x79 | VK_F10 |
| пробел | 32 | 0x20 | VK_SPACE |
| Backspace | 8 | 0x8 | VK_BACK |
| Tab | 9 | 0x9 | VK_TAB |
| Enter | 13 | 0x0D | VK_RETURN |
| Shift | 16 | 0x10 | VK_SHIFT |
| Ctrl | 17 | 0x11 | VK_CONTROL |
| Alt | 18 | 0x12 | VK_MENU |
| CapsLock | 20 | 0x14 | VK_CAPITAL |
| Esc | 27 | 0x1B | VK_ESCAPE |
| Insert | 45 | 0x2D | VK_INSERT |
| PageUp | 33 | 0x21 | VK_PRIOR |
| PageDown | 34 | 0x22 | VK_NEXT |
| End | 35 | 0x23 | VK_END |
| Home | 36 | 0x24 | VK_HOME |
| Стрелка | 37 | 0x25 | VK_LEFT |
| Стрелка | 38 | 0x26 | VK_UP |
| Стрелка | 39 | 0x27 | VK_RIGHT |
| Стрелка | 40 | 0x28 | VK_DOWN |
| Delete | 46 | 0x2E | VK_DELETE |
| PrintScreen | 44 | 0x2C | VK_SNAPSHOT |
| ScrollLock | 145 | 0x91 | VK_SCROLL |
0 ) | 48 | 0x30 | - |
| 1 ! | 49 | 0x31 | - |
| 2 @ | 50 | 0x32 | - |
| 3 # | 51 | 0x33 | - |
| 4 $ | 52 | 0x34 | - |
| 5 % | 53 | 0x35 | - |
| 6 ^ | 54 | 0x36 | - |
| 7 & | 55 | 0x37 | - |
| 8 * | 56 | 0x38 | - |
| 9 ( | 57 | 0x39 | - |
| ` ~ | 192 | 0xC0 | - |
| - _ | 189 | 0xBD | - |
| = + | 187 | 0xBB | - |
| [ { | 219 | 0xDB | - |
| ] } | 221 | 0xDD | - |
| ; : | 186 | 0xBA | - |
| ' " | 222 | 0xDE | - |
| \ | | 220 | 0xDC | - |
| , < | 188 | 0xBC | - |
| . > | 190 | 0xDE | - |
| / ? | 191 | 0xBF | - |
| a A | 65 | 0x41 | - |
| b B | 66 | 0x42 | - |
| c C | 67 | 0x43 | - |
| d D | 68 | 0x44 | - |
| e E | 69 | 0x45 | - |
| f F | 70 | 0x46 | - |
| g G | 71 | 0x47 | - |
| h H | 72 | 0x48 | - |
| i I | 73 | 0x49 | - |
| j J | 74 | 0x4A | - |
| k K | 75 | 0x4B | - |
| l L | 76 | 0x4C | - |
| m M | 77 | 0x4D | - |
| n N | 78 | 0x4E | - |
| o O | 79 | 0x4F | - |
| p P | 80 | 0x50 | - |
| q Q | 81 | 0x51 | - |
| r R | 82 | 0x52 | - |
| s S | 83 | 0x53 | - |
| t T | 84 | 0x54 | - |
| u U | 85 | 0x55 | - |
| v V | 86 | 0x56 | - |
| w W | 87 | 0x57 | - |
| x X | 88 | 0x58 | - |
| y Y | 89 | 0x59 | - |
| z Z | 90 | 0x5A | - |
| Win(Л) | 91 | 0x5B | VK_LWIN |
| Win(Пp) | 92 | 0x5C | VK_RWIN |
На дополнительном (правом цифровом) поле клавиатуры, при выключенном индикаторе NumLock
| 0 | 96 | 0x60 | VK_NUMPAD0 |
| 1 | 97 | 0x61 | VK_NUMPAD1 |
| 2 | 98 | 0x62 | VK_NUMPAD2 |
| 3 | 99 | 0x63 | VK_NUMPAD3 |
| 4 | 100 | 0x64 | VK_NUMPAD4 |
| 5 | 101 | 0x65 | VK_NUMPAD5 |
| 6 | 102 | 0x66 | VK_NUMPAD6 |
| 7 | 103 | 0x67 | VK_NUMPAD7 |
| 8 | 104 | 0x68 | VK_NUMPAD8 |
| 9 | 105 | 0x69 | VK_NUMPAD9 |
| * | 106 | 0x6A | VK_MULTIPLY |
| + | 107 | 0x6B | VK_ADD |
| - | 108 | 0x6C | VK_SUBTRACT |
| . | 109 | 0x6D | VK_DECIMAL |
| / | 110 | 0x6E | VK_DIVIDE |
Параметр Shift является множеством, которое может быть пустым или включать символьные значения, описываемые в табл. 22.3.
Таблица 22.3. Символьные значения Shift
| Символьное значение | Назначение |
| ssShift | Нажата или отпущена клавиша <Shift> |
| ssAIt | Нажата или отпущена клавиша <Alt> |
| ssCtrl | Нажата или отпущена клавиша <Ctrl> |
