Usando eventos de teclado (Windows Forms .NET)

A maioria dos programas do Windows Forms processa a entrada do teclado tratando eventos de teclado. Este artigo fornece uma visão geral dos eventos de teclado, incluindo detalhes sobre quando usar cada evento e os dados fornecidos para cada evento. Para obter mais informações sobre eventos em geral, consulte Visão geral de eventos (Windows Forms .NET).

Importante

A documentação do Guia da Área de Trabalho para .NET 7 e .NET 6 está em construção.

Eventos de teclado

O Windows Forms fornece dois eventos que ocorrem quando um usuário pressiona uma tecla do teclado e um evento quando um usuário libera uma tecla do teclado:

  • O KeyDown evento ocorre uma vez.
  • O KeyPress evento, que pode ocorrer várias vezes quando um usuário mantém pressionada a mesma chave.
  • O KeyUp evento ocorre uma vez quando um usuário libera uma chave.

Quando um usuário pressiona uma tecla, o Windows Forms determina qual evento deve ser gerado com base em se a mensagem do teclado especifica uma tecla de caractere ou uma tecla física. Para obter mais informações sobre caracteres e teclas físicas, consulte Visão geral do teclado, eventos de teclado.

A tabela a seguir descreve os três eventos de teclado.

Evento de teclado Descrição Resultados
KeyDown Esse evento é gerado quando um usuário pressiona uma tecla física. O manipulador para KeyDown recebe:

  • Um KeyEventArgs parâmetro, que fornece a KeyCode propriedade (que especifica um botão de teclado físico).
  • A Modifiers propriedade (SHIFT, CTRL ou ALT).
  • A KeyData propriedade (que combina o código de chave e o modificador). O KeyEventArgs parâmetro também fornece:

    • A Handled propriedade, que pode ser definida para impedir que o controle subjacente receba a chave.
    • A SuppressKeyPress propriedade, que pode ser usada para suprimir os KeyPress eventos e KeyUp para esse pressionamento de tecla.
KeyPress Esse evento é gerado quando as teclas são pressionadas resultam em um caractere. Por exemplo, um usuário pressiona as teclas SHIFT e a letra “a” minúscula, o que resulta em uma letra “A” maiúscula. KeyPress é levantado após KeyDown.

  • O manipulador para KeyPress recebe:
  • Um KeyPressEventArgs parâmetro, que contém o código de caractere da tecla que foi pressionada. Esse código de caractere é exclusivo para cada combinação de uma tecla de caractere e tecla modificadora.

    Por exemplo, a tecla “A” gerará:

    • O código de caractere 65, se ela estiver pressionada com a tecla SHIFT
    • Ou a tecla CAPS LOCK, 97 se ela for pressionada sozinha,
    • E 1 se ela estiver pressionada com a tecla CTRL.
KeyUp Esse evento é gerado quando um usuário libera uma tecla física. O manipulador para KeyUp recebe:

  • Um KeyEventArgs parâmetro:

    • Que fornece a KeyCode propriedade (que especifica um botão de teclado físico).
    • A Modifiers propriedade (SHIFT, CTRL ou ALT).
    • A KeyData propriedade (que combina o código de chave e o modificador).

Confira também