Compartilhar via


Usando eventos de teclado

A maioria dos programas do Windows Forms processa a entrada do teclado manipulando os 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 a visão geral de eventos.

Eventos de teclado

O 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 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 deve ser gerado com base em se a mensagem de 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 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 pode ser usada para suprimir os eventos KeyPress e KeyUp para esse pressionamento de tecla.
KeyPress Esse evento é gerado quando a tecla ou as teclas pressionadas resultam em um caractere. Por exemplo, um usuário pressiona a tecla SHIFT e a tecla "a" minúscula, o que resulta em um caractere de letra maiúscula "A". KeyPress é gerado 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. Esse código de caractere é exclusivo para cada combinação de uma chave de caractere e uma chave modificadora.

    Por exemplo, a chave "A" gera:

    • O código de caractere 65, quando pressionado com a tecla Shift
    • Ou caps lock está ativado, 97 se ele é pressionado por si mesmo,
    • 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:

    • O 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).

Consulte também