Uso de eventos de teclado (Windows Forms para .NET)

La mayoría de los programas de Windows Forms procesan la entrada de teclado controlando los eventos de teclado. En este artículo se ofrece una introducción a los eventos de teclado, incluidos detalles sobre cuándo usar cada evento y los datos que se proporcionan para cada uno. Para obtener más información sobre los eventos en general, vea Información general sobre eventos (Windows Forms para .NET).

Importante

La documentación de la guía de escritorio para .NET 7 y .NET 6 está en proceso de elaboración.

Eventos de teclado

Windows Forms proporciona dos eventos que se producen cuando el usuario presiona una tecla del teclado y un evento cuando el usuario suelta una tecla del teclado:

  • El evento KeyDown, que se produce una vez.
  • El evento KeyPress, que se puede producir varias veces cuando un usuario mantiene presionada la misma tecla.
  • El evento KeyUp se produce una vez cuando el usuario suelta una tecla.

Cuando un usuario presiona una tecla, Windows Forms determina qué evento se genera en función de si el mensaje del teclado especifica una tecla de carácter o una tecla física. Para obtener más información sobre las teclas de carácter y físicas, vea Información general sobre el teclado, eventos de teclado.

En la tabla siguiente se describen los tres eventos de teclado.

Evento de teclado Descripción Results
KeyDown Este evento se genera cuando el usuario presiona una tecla física. El controlador de KeyDown recibe:

  • Un parámetro KeyEventArgs que proporciona la propiedad KeyCode (que especifica un botón de teclado físico).
  • La propiedad Modifiers (MAYÚS, CTRL o ALT).
  • La propiedad KeyData (que combina el código de tecla y el modificador). El parámetro KeyEventArgs también proporciona:

    • La propiedad Handled, que se pueden establecer para evitar que el control subyacente reciba la tecla.
    • La propiedad SuppressKeyPress, que puede usarse para suprimir los eventos KeyPress y KeyUp para esa pulsación de tecla.
KeyPress Este evento se genera cuando las teclas presionadas dan como resultado un carácter. Por ejemplo, un usuario presiona las teclas MAYÚS y "a" minúscula, que producirá un carácter "A" mayúscula. KeyPress se genera después de KeyDown.

  • El controlador de KeyPress recibe:
  • Un parámetro KeyPressEventArgs, que contiene el código de carácter de la tecla que se presionó. Este código de carácter es único para cada combinación de una tecla de carácter y una tecla modificadora.

    Por ejemplo, la tecla "A" generará:

    • El código de carácter 65, si se presiona con la tecla MAYÚS
    • O la tecla BLOQ MAYÚS, 97 si se presiona sola
    • Y 1, si se presiona con la tecla CTRL.
KeyUp Este evento se genera cuando el usuario suelta una tecla física. El controlador de KeyUp recibe:

  • Un parámetro KeyEventArgs:

    • Que proporciona la propiedad KeyCode (que especifica un botón de teclado físico).
    • La propiedad Modifiers (MAYÚS, CTRL o ALT).
    • La propiedad KeyData (que combina el código de tecla y el modificador).

Vea también