Sabemos que em alguns programas existem alguns atalhos (como: tecla Shift para minimizar, tecla ESC para sair, Ctrl+S para salvar, Alt+x para sair, etc.). Houve algumas introduções no passado de que isso pode ser feito usando a API Win32, mas é muito complicado. Na verdade, o próprio VB já nos forneceu essa função.
Vamos criar um novo formulário Form1. Para operações de teclado, podemos ver três eventos: KeyPress(), KeyDown e KeyUp, irei apresentá-los respectivamente a seguir:
O evento KeyPress() ocorre quando o usuário pressiona e libera uma tecla ANSI (ANSI são os caracteres ASCII visíveis de 1 a 127).
gramática
descrição parcial
object é uma expressão de objeto cujo valor é "aplicado a" um objeto na lista.
índice é um número inteiro que identifica exclusivamente um controle na matriz de controle (disponível apenas para matrizes de controle).
keyascii é um número inteiro que retorna um código de chave ANSI numérico padrão. Keyascii passa um objeto por referência, tornando possíveis alterações nele.
Envie um personagem diferente. Alterar keyascii para 0 cancela o pressionamento de tecla para que o objeto não receba caracteres.
ilustrar
O objeto com foco recebe este evento. Um formulário poderá receber este evento somente se a propriedade KeyPreview estiver definida como True. Um evento KeyPress pode fazer referência a qualquer caractere imprimível do teclado, um caractere do alfabeto padrão ou um dos poucos caracteres especiais em combinação com a tecla CTRL e a tecla ENTER ou BACKSPACE. O procedimento de evento KeyPress() é útil ao interceptar pressionamentos de tecla inseridos em um controle TextBox ou ComboBox. Ele pode testar instantaneamente a validade das teclas digitadas ou formatar caracteres à medida que são inseridos. Alterar o valor do parâmetro keyascii alterará os caracteres exibidos.
Você pode usar a seguinte expressão para converter o parâmetro keyascii em um caractere:
ilustrar
Para ambos os eventos, o objeto em foco recebe todas as teclas digitadas. Um formulário só pode ganhar foco se não tiver controles visíveis e válidos. Embora os eventos KeyDown() e KeyUp() possam ser aplicados à maioria das teclas, eles são mais comumente aplicados a: teclas de caracteres estendidos, como teclas de função, teclas de navegação, teclas modificadoras de teclado e combinações de teclas, distinguindo teclados numéricos de números regulares Tecla; quando precisar responder ao pressionar e soltar uma tecla, você pode usar os procedimentos de evento KeyDown e KeyUp.
Os eventos KeyDown e KeyUp não podem ser referenciados nas seguintes situações: o formulário possui um controle CommandButton e a tecla ENTER quando a propriedade Default está definida como True. O formulário possui um controle CommandButton, e quando a propriedade Cancel está definida como True, as teclas ESC, TAB, KeyDown e KeyUp utilizam dois parâmetros para interpretar as formas maiúsculas e minúsculas de cada caractere: keycode - exibe a chave física (substitui A e a Retorna como a mesma tecla) e shift-exibe o status da tecla shift+tecla e retorna um de A ou a.
Se precisar testar o parâmetro shift, você pode usar a constante de deslocamento definida no parâmetro. Esta constante tem os seguintes valores:
Descrição do valor constante
vbShiftMask 1 bit de chave HIFT
escudo.
Tecla CTRL VbCtrlMask 2
máscara de bits.
VbAltMask 4 bits de chave ALT
escudo.
Esta constante atua como uma máscara de bits, que pode ser usada para testar qualquer combinação de teclas.
Nota: Se a propriedade KeyPreview estiver definida como True, um formulário receberá este evento antes dos controles do formulário. Você pode usar a propriedade KeyPreview para criar rotinas globais de manipulação de teclado.
Com o conhecimento acima, podemos criar um programa perfeito com teclas de atalho. Por exemplo, em um programa precisamos usar Ctrl+S para salvar, Shift para minimizar, Alt+X e ESC para sair:
Primeiro inicie o VB e selecione um novo arquivo EXE, puxe um TextBox no formulário Form1 e defina a propriedade KeyPreview do Form1 como True, clique duas vezes em Form1, selecione o evento KeyPress do Form e insira o seguinte código: