Używanie zdarzenia KeyPress dla kontrolek formularza
W tym artykule opisano sposób używania zdarzenia KeyPress dla kontrolek formularzy.
Oryginalna wersja produktu: Visual FoxPro
Oryginalny numer KB: 140296
Podsumowanie
Wielu deweloperów używa funkcji ON KEY LABEL do przypisywania programów lub procedur w programach, które mają być wykonywane po naciśnięciu określonego klucza (zazwyczaj klucza funkcji). Jeśli jednak przypisanie ON KEY LABEL ma być specyficzne dla kontrolki w formularzu, lepszym rozwiązaniem byłoby użycie zdarzenia KeyPress tej kontrolki.
Więcej informacji
Zdarzenie KeyPress jest dostępne dla następujących kontrolek formularza:
CheckBox, ComboBox, CommandButton, EditBox, Form, ListBox, OptionButton, Spinner, TextBox
To zdarzenie umożliwia sprawdzenie naciśnięcia określonego klucza. W przypadku używania zdarzenia KeyPress do wykonania akcji na podstawie klucza funkcji wartość klucza funkcji powinna być używana, jak pokazano w tej tabeli:
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
Aby uzyskać więcej informacji na temat wartości klucza, zobacz funkcję INKEY()
w pliku pomocy Visual FoxPro.
Przykład krok po kroku
Poniższe kroki pokazują, jak używać zdarzenia KeyPress.
Utwórz formularz i umieść na nim pole tekstowe.
ControlSource
We właściwości pola tekstowego wpisz mykey (lub dowolną inną zmienną, którą możesz preferować).Umieść następujący kod w zdarzeniu KeyPress pola tekstowego:
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
Umieść następujący kod w zdarzeniu Load formularza:
CLEAR MACROS SET HELP OFF *: This will disable FoxPro's default function key assignments.
Umieść następujący kod w zdarzeniu Destroy formularza:
RESTORE MACROS SET HELP ON *: This will restore FoxPro's default function key assignments.
Umieść przycisk polecenia w formularzu i umieść następujący kod w zdarzeniu kliknięcia:
ThisForm.Release
Zapisz i uruchom formularz. Jeśli naciśniesz klawisz F1 lub F5, powinny zostać wyświetlone odpowiednie komunikaty OKNA OCZEKIWANIA, a pole tekstowe powinno zostać zaktualizowane.