Een KeyPress-gebeurtenis gebruiken voor formulierbesturingselementen
In dit artikel wordt beschreven hoe u KeyPress Event gebruikt voor formulierbesturingselementen.
Oorspronkelijke productversie: Visual FoxPro
Origineel KB-nummer: 140296
Samenvatting
Veel ontwikkelaars gebruiken ON KEY LABEL om programma's of procedures toe te wijzen binnen programma's die moeten worden uitgevoerd bij het indrukken van een specifieke toets (meestal een functietoets). Als de ON KEY LABEL-toewijzing echter specifiek moet zijn voor een besturingselement in een formulier, is het een beter alternatief om de gebeurtenis KeyPress van dat besturingselement te gebruiken.
Meer informatie
De gebeurtenis KeyPress is beschikbaar voor de volgende formulierbesturingselementen:
Selectievakje, Keuzelijst met invoervak, Opdrachtknop, EditBox, Formulier, Keuzelijst, OptionButton, Spinner, Tekstvak
Het is mogelijk om deze gebeurtenis te gebruiken om te controleren of er op een bepaalde toets wordt gedrukt. Wanneer u de gebeurtenis KeyPress gebruikt om een actie uit te voeren op basis van een functiesleutel, moet de waarde van de functiesleutel worden gebruikt zoals weergegeven in deze tabel:
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
Zie de functie in het INKEY()
Help-bestand van Visual FoxPro voor meer informatie over sleutelwaarden.
Stapsgewijs voorbeeld
In de volgende stappen ziet u hoe u de gebeurtenis KeyPress gebruikt.
Maak een formulier en plaats er een tekstvak op.
Typ in de
ControlSource
eigenschap van het tekstvak mykey (of een andere variabele die u misschien wilt gebruiken).Plaats de volgende code in de gebeurtenis KeyPress van het tekstvak:
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
Plaats de volgende code in de gebeurtenis Laden van het formulier:
CLEAR MACROS SET HELP OFF *: This will disable FoxPro's default function key assignments.
Plaats de volgende code in de gebeurtenis Destroy van het formulier:
RESTORE MACROS SET HELP ON *: This will restore FoxPro's default function key assignments.
Plaats een opdrachtknop in het formulier en plaats de volgende code in de klik-gebeurtenis:
ThisForm.Release
Sla het formulier op en voer het uit. Als op de toets F1 of F5 wordt gedrukt, worden de juiste wachtvensterberichten weergegeven en moet het tekstvak worden bijgewerkt.