Compartir a través de


Usar un evento KeyPress para controles de formulario

En este artículo se describe cómo usar El evento KeyPress para los controles de formulario.

Versión original del producto: Visual FoxPro
Número de KB original: 140296

Resumen

Muchos desarrolladores usan ON KEY LABEL para asignar programas o procedimientos dentro de los programas que se van a ejecutar al presionar una clave específica (normalmente una clave de función). Sin embargo, si la asignación ON KEY LABEL es específica de un control dentro de un formulario, una alternativa mejor sería usar el evento KeyPress de ese control.

Más información

El evento KeyPress está disponible para los siguientes controles de formulario:

Caja de verificación, Cuadro combinado, Botón de comando, Cuadro de edición, Formulario, Cuadro de lista, Botón de opción, Giratorio, Cuadro de texto

Es posible usar este evento para comprobar la pulsación de una tecla específica. Al usar el evento KeyPress para realizar una acción basada en una clave de función, el valor de la clave de función se debe usar como se muestra en esta tabla:

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

Para obtener más información sobre los valores de clave, vea la función en el INKEY() archivo de ayuda de Visual FoxPro.

Ejemplo paso a paso

Los pasos siguientes muestran cómo usar el evento KeyPress.

  1. Cree un formulario y coloque un cuadro de texto en él.

  2. En la ControlSource propiedad del cuadro de texto, escriba mykey (o cualquier otra variable que prefiera).

  3. Coloque el código siguiente en el evento KeyPress del cuadro de texto:

    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. Coloque el código siguiente en el evento Load del formulario:

    CLEAR MACROS
    SET HELP OFF
    *: This will disable FoxPro's default function key assignments.
    
  5. Coloque el código siguiente en el evento Destroy del formulario:

    RESTORE MACROS
    SET HELP ON
    *: This will restore FoxPro's default function key assignments.
    
  6. Coloque un botón de comando en el formulario y coloque el siguiente código en su evento de clic:

    ThisForm.Release
    
  7. Guarde y ejecute el formulario. Si se presiona la tecla F1 o F5, deben aparecer los mensajes WAIT WINDOW adecuados y se debe actualizar el cuadro de texto.