Evento Form.KeyPress (Access)

O evento KeyPress ocorre quando o usuário pressiona e libera uma tecla ou combinação de teclas que corresponde a um código ANSI enquanto um formulário ou controle tem o foco. Esse evento também ocorre se você enviar um pressionamento de tecla ANSI para um formulário ou controle usando a ação EnviarSequênciaDeCaracteres em uma macro ou da instrução SendKeys no Visual Basic.

Sintaxe

expressão. KeyPress (KeyAscii)

expressão Uma variável que representa um objeto Form.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
KeyAscii Obrigatório Integer Returns a numeric ANSI key code. The KeyAscii argument is passed by reference; changing it sends a different character to the object. Setting the KeyAscii argument to 0 cancels the keystroke so that the object doesn't recognize that a key was pressed.

Comentários

Para executar um macro ou procedimento de evento quando esse evento ocorrer, defina a propriedade OnKeyPress com o nome da macro ou como [procedimento do evento].

The object with the focus receives all keystrokes. A form can have the focus only if it has no controls or all its visible controls are disabled.

Um formulário também receberá todos os eventos de teclado, mesmo aqueles que ocorrem para controles, se você definir a propriedade KeyPreview do formulário como Sim. Com a configuração dessa propriedade, todos os eventos de teclado ocorrem primeiro para o formulário e, em seguida, para o controle que tem o foco. Você pode responder a teclas específicas pressionadas no formulário, independentemente de qual controle tem o foco. Por exemplo, talvez você queira que a combinação de chaves Ctrl+X sempre execute a mesma ação em um formulário.

Se você pressionar e segurar uma tecla ANSI, os eventos KeyDown e KeyPress alternarão repetidamente (KeyDown, KeyPress, KeyDown, KeyPress e assim por diante) até liberar a chave e, em seguida, ocorrer o evento KeyUp .

Um evento KeyPress pode envolver qualquer caractere de teclado imprimível, a tecla Ctrl combinada com um caractere do alfabeto padrão ou um caractere especial e a chave Enter ou Backspace. Use os procedimentos de evento KeyDown e KeyUp para manipular qualquer tecla não reconhecida pelo evento KeyPress , como chaves de função, teclas de navegação e quaisquer combinações delas com modificadores de teclado (teclas Alt, Shift ou Ctrl). Ao contrário os eventos KeyDown e KeyUp, o evento KeyPress não indica o estado físico do teclado; em vez disso, ele indica o caractere ANSI correspondente à tecla pressionada ou combinações de teclas.

KeyPress interpreta as versões maiúscula e minúscula de cada caractere como códigos de teclas distintos e, portanto, como dois caracteres distintos.

Observação

A chave Backspace faz parte do conjunto de caracteres ANSI, mas a chave Excluir não é. Se você excluir um caractere em um controle usando a chave do Backspace, causará um evento KeyPress ; se você usar a chave Excluir, não usará.

Os eventos KeyDown e KeyPress ocorrem quando você pressiona ou envia uma tecla ANSI. O evento KeyUp ocorre depois de qualquer evento para um controle gerado pelo pressionamento ou envio da tecla. Se um pressionamento de tecla faz o foco mover de um controle para outro controle, o evento KeyDown ocorra para o primeiro controle, enquanto os eventos KeyPress e KeyUp ocorrem para o segundo controle.

For example, if you go to a new record and type a character in the first control in the record, the following events occur:

  • Atual (para o novo registro)
  • Insira (para o primeiro controle no novo registro)
  • GotFocus (para o controle)
  • KeyDown (para o controle)
  • KeyPress (para o controle)
  • BeforeInsert (para o novo registro no formulário)
  • Alteração (para o controle se ele for uma caixa de texto ou caixa de combinação)
  • KeyUp (para o controle)

Exemplo

The following example converts text entered in a text box to uppercase as the text is typed in, one character at a time.

Para experimentar o exemplo, adicione o procedimento de evento a seguir a um formulário que contém uma caixa de texto chamada ShipRegion.

Private Sub ShipRegion_KeyPress(KeyAscii As Integer) 
 Dim strCharacter As String 
 
 ' Convert ANSI value to character string. 
 strCharacter = Chr(KeyAscii) 
 ' Convert character to upper case, then to ANSI value. 
 KeyAscii = Asc(UCase(strCharacter)) 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.