Partilhar via


Usando eventos de teclado (Windows Forms .NET)

A maioria dos programas do Windows Forms processa a entrada do teclado manipulando os eventos do 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 do (Windows Forms .NET).

Eventos de teclado

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

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

Quando um usuário pressiona uma tecla, o Windows Forms determina qual evento gerar com base no fato de a mensagem do teclado especificar 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 do teclado.

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

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

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

    • A propriedade Handled, que pode ser definida para impedir que o controle subjacente receba a chave.
    • A propriedade SuppressKeyPress, que pode ser utilizada para suprimir os eventos KeyPress e KeyUp associados a essa tecla.
KeyPress Este evento é gerado quando a tecla ou teclas pressionadas resultam em um caractere. Por exemplo, um usuário pressiona SHIFT e as teclas minúsculas "a", o que resulta em um caractere "A" maiúsculo. KeyPress é ativado após KeyDown.

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

    Por exemplo, a chave "A" irá gerar:

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

  • Um parâmetro KeyEventArgs:

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

Ver também