Синтаксис
Sub Form_KeyDown(keycode As Integer, shift As Integer)
Sub Pic1_KeyDown(keycode As Integer, shift
As Integer)
Sub Text1_KeyDown(keycode As Integer, shift
As Integer)
Sub MText1_KeyDown(keycode As Integer, shift
As Integer)
Sub TextBox1_KeyDown(keycode As Integer, shift
As Integer)
Sub List1_KeyDown(keycode As Integer, shift
As Integer)
Sub Combo1_KeyDown(keycode As Integer, shift
As Integer)
Sub LCombo1_KeyDown(keycode As Integer, shift
As Integer)
Sub HScroll1_KeyDown(keycode As Integer, shift
As Integer)
Sub VScroll1_KeyDown(keycode As Integer, shift
As Integer)
Sub Skin1_KeyDown(keycode As Integer,
shift As Integer)
Sub Form_KeyUp(keycode As Integer, shift As Integer)
Sub Pic1_KeyUp(keycode As Integer, shift As
Integer)
Sub Text1_KeyUp(keycode As Integer, shift As
Integer)
Sub MText1_KeyUp(keycode As Integer, shift
As Integer)
Sub TextBox1_KeyUp(keycode As Integer, shift
As Integer)
Sub List1_KeyUp(keycode As Integer, shift As
Integer)
Sub Combo1_KeyUp(keycode As Integer, shift
As Integer)
Sub LCombo1_KeyUp(keycode As Integer, shift
As Integer)
Sub HScroll1_KeyUp(keycode As Integer, shift
As Integer)
Sub VScroll1_KeyUp(keycode As Integer, shift
As Integer)
Sub Skin1_KeyUp(keycode As Integer, shift
As Integer)
Части синтаксической последовательности для событий KeyDown и KeyUp приведены в таблице:
Часть
|
Описание
|
1
|
Целое число, однозначно определяющее элемент управления, если он находится в массиве элементов управления |
keycode
|
Код клавиши. Например, vbKeyF1 (клавиша F1) или vbKeyHome (клавиша HOME). Для описания кодов клавиш используются константы в библиотеке объектов Visual Basic (VB) в элементе Object Browser. |
shift
|
Целое число, соответствующее состоянию клавиш SHIFT, CTRL и ALT во время события. Аргумент shift является битовым полем, младшие биты которого соответствуют клавише SHIFT (бит 0), клавише CTRL (бит 1) и клавише ALT (бит 2). Эти биты соответствуют значениям 1, 2 и 4. Установка этих битов указывает на то, что соответствующие клавиши нажаты. Например, если нажаты клавиши CTRL и ALT, значение shift равно 6. |
Примечания
Для обоих событий, объект, обладающий фокусом, получает все нажатия клавиш. Форма может получить фокус, только если у нее нет видимых и разрешенных элементов управления. Хотя события KeyDown и KeyUp применимы к большинству клавиш, чаще всего их используют для:
Процедуры событий KeyDown и KeyUp используются в том случае, если нужно реагировать как на нажатие, так и на отпускание клавиши.
KeyDown и KeyUp не вызываются для:
KeyDown и KeyUp различают верхний и нижний регистр каждого символа с помощью двух аргументов: keycode, указывающего на реальную клавишу (одной клавишей возвращаются 'A' и 'a') и shift, показывающего состояние shift+key, и потому возвращающий 'A' или 'a'.
Для проверки аргумента shift используются определяющие биты аргумента константы shift. Константы имеют следующие значения:
Константа
|
Значение
|
Описание
|
vbShiftMask
|
1 | Битовая маска клавиши SHIFT. |
vbCtrlMask
|
2 | Битовая маска клавиши CTRL. |
vbAltMask
|
4 | Битовая маска клавиши ALT. |
Константы используются как битовые маски для проверки любого сочетания клавиш.
Условие проверяется после присвоения результата временной целой переменной. Значение shift сравнивается с битовой маской. Используйте оператор And с аргументом shift, и тогда, если модификатор нажат, то результат становится больше нуля:
ShiftDown = (Shift And vbShiftMask) > 0
Далее можно проверять любое сочетание условий, например:
If ShiftDown And CtrlDown Then
Замечание Если присвоено значение True свойства KeyPreview, то форма получает эти сообщения раньше, чем элементы управления формы. Свойство KeyPreview используется для создания глобальных программ обслуживания клавиатуры.