Происходит, когда пользоавтель нажимает и отпускает клавишу на клавиатуре. Вы можете использовать свойство KeyPress для перехвата нажатий клавишн в элементе управления. Вы можете, кроме того, незамедлительно проверить соответствие или формат символов непосредственно во время их печати. Используйте свойство KeyPreview для создания глобальных процедур обработки ввода с клавиатуры.

PROCEDURE Object.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl

Параметры

nKeyCode

Содержит число, которое идентифицирует нажатую клавишу. Со списком кодов для специальных клавиш и клавишных комбинаций можно ознакомиться в описании функции INKEY().

nShiftAltCtrl

Устанавливает конкретный бит, если во время нажатия на клавишу, определенную в nKeyCode удерживалась нажатой одна из клавиш-модификаторов. Клавишами-модификаторами, действительными в Visual FoxPro являются клавиши SHIFT, CTRL и ALT.

В приведенной ниже таблице перечислены значения клавиш-модификаторов для nShiftAltCtrl.

nShiftAltCtrl Клавиша-модификатор

1

SHIFT

2

CTRL

4

ALT

Этот параметр представляет собой сумму бит, где менее значимые биты соответствуют клавише SHIFT (бит 0), клавише CTRL (бит 1) и клавише ALT (бит 2). Эти биты соответствуют значениям 1, 2 и 4, соответственно. Этот параметр показывает состояние этих клавиш. Биты могут быть установлены так: все - все клавиши-модификаторы нажаты; часть - часть клавиш-модификаторы нажата; ни один - ни одна клавиша-модификатор не нажата. Например, если обе клавиши - и CTRL, и ALT - были нажаты, значение параметра nShiftAltCtrl автоматически устанавливается равным 6.

Expand imageПримечания

Применяется к: CheckBox | ComboBox | CommandButton | EditBox | Form | Grid | ListBox | OptionButton | Spinner | TextBox

Событие KeyPress не происходит для любой комбинации клавиш с удерживаемой нажатой клавишей ALT.

Событие KeyPress получает объект, на который установлен фокус.

Форма может получить событие KeyPress в трех специальных случаях:

  • Форма не содержит элементов управления, или ни один из элементов не является видимым или незаблокированным.

  • Значение свойства формы KeyPreview установлено равным True (.T.). В этом случае событие KeyPress первой получает форма, а затем элемент управления, имеющий фокус.

  • Элемент управления на форме не может обрабатывать клавишные нажатия, например, при нажатии на TAB происходит перенос фокуса на следующий элемент управления, расположенный на форме.

Если свойство решетки (grid) AllowCellSelection установлено в значение True (.T.), Visual FoxPro сбрасывает событие KeyPress элемента управления Grid и использует событие на уровне индивидуальной ячейки.

Expand image Смотрите также