Как использовать события KeyPress вместо ключа ПОДПИСИ


Обзор


Многие разработчики д ключ ПОДПИСИ используется для назначения программы или процедуры в рамках программы, которые должны выполняться при клавиши конкретных (обычно функциональной клавиши). Тем не менее если назначение д ключа ПОДПИСИ для элемента управления в форме, лучшим вариантом будет использовать событие KeyPress этого элемента управления.

Дополнительные сведения


Событие KeyPress доступна для следующих элементов управления формы:
Флажок, поле со списком, CommandButton, EditBox, формы, ListBox, OptionButton, счетчик, текстовое поле
Имеется возможность использовать это событие для проверки нажать определенную клавишу. При использовании события KeyPress для выполнения действия, основанного на функциональную клавишу, значение ключа функции должны использоваться как показано в следующей таблице:


Key Alone Shift Ctrl Alt
------------------------------------
F1 28 84 94 104
F2 -1 85 95 105
F3 -2 86 96 106
F4 -3 87 97 107
F5 -4 88 98 108
F6 -5 89 99 109
F7 -6 90 100 110
F8 -7 91 101 111
F9 -8 92 102 112
F10 -9 93 103 113
F11 133 135 137 139
F12 134 136 138 140
Дополнительные сведения о ключевых значений ссылки на функцию INKEY() в файле справки Visual FoxPro.

Пример с пошаговыми инструкциями

Следующие шаги показывают, как использовать событие KeyPress.


  1. Создайте форму и поместите текстовое поле на нем.
  2. В свойстве данные (ControlSource) текстовое поле, тип mykey (или любой другой переменной, которая может потребоваться).
  3. Поместите следующий код в событие KeyPress текстового поля:
       LPARAMETERS nKeyCode, nShiftAltCtrl
    *: The previous line of code is already contained in the KeyPress event
    *: by default.
    DO CASE

    CASE nKeyCode = 28
    WAIT WINDOW "The F1 Key has been pressed" NOWAIT
    mykey = "F1 Key"
    ThisForm.Refresh

    CASE nKeyCode = -4
    WAIT WINDOW "The F5 Key has been pressed" NOWAIT
    mykey = "F5 Key"
    ThisForm.Refresh

    ENDCASE
  4. Поместите следующий код в событии Load формы:
       CLEAR MACROS
    SET HELP OFF
    *: This will disable FoxPro's default function key assignments.
  5. Поместите следующий код в событие удаления формы:
       RESTORE MACROS
    SET HELP ON
    *: This will restore FoxPro's default function key assignments.
  6. Поместите на форму кнопку и поместите следующий код в его событие click.
       ThisForm.Release
  7. Сохраните и запустите форму. При нажатии клавиши F5 либо F1, появятся соответствующие ОЖИДАНИЯ ОКНА сообщения и текстовом поле должен быть обновлен.