Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 TextBox .
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, poderá querer que a combinação de teclas Ctrl+X execute sempre a mesma ação num formulário.
Se premir sem soltar uma tecla ANSI, os eventos KeyDown e KeyPress alternam repetidamente (KeyDown, KeyPress, KeyDown, KeyPress, etc.) até soltar a tecla e, em seguida, ocorre o evento KeyUp .
Um evento KeyPress pode envolver qualquer caráter de teclado imprimível, a tecla Ctrl combinada com um caráter do alfabeto padrão ou um caráter especial e a tecla Enter ou Retrocesso. Utilize os procedimentos de eventos KeyDown e KeyUp para processar qualquer batimento de tecla não reconhecido pelo evento KeyPress , como teclas de função, teclas de navegação e qualquer combinação destes 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 tecla De retrocesso faz parte do conjunto de carateres ANSI, mas a tecla Delete não. Se eliminar um caráter num controlo com a tecla De retrocesso, causará um evento KeyPress ; Se utilizar a chave Delete, não utiliza.
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 seguinte procedimento de evento a um formulário que contém uma caixa de texto denominada 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.