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.

  1. Maak een formulier en plaats er een tekstvak op.

  2. Typ in de ControlSource eigenschap van het tekstvak mykey (of een andere variabele die u misschien wilt gebruiken).

  3. 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
    
  4. 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.
    
  5. 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.
    
  6. Plaats een opdrachtknop in het formulier en plaats de volgende code in de klik-gebeurtenis:

    ThisForm.Release
    
  7. 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.