Nous savons que dans certains programmes, il existe des raccourcis (tels que : touche Shift pour minimiser, touche ESC pour quitter, Ctrl+S pour enregistrer, Alt+x pour quitter, etc.). Il y a eu quelques introductions dans le passé selon lesquelles cela pouvait être fait en utilisant l'API Win32, mais c'est trop lourd. En fait, VB lui-même nous a déjà fourni cette fonction.
Créons un nouveau formulaire Form1. Pour les opérations au clavier, nous pouvons voir trois événements : KeyPress(), KeyDown et KeyUp. Je les présenterai respectivement ci-dessous :
L'événement KeyPress() se produit lorsque l'utilisateur appuie et relâche une touche ANSI (ANSI correspond aux caractères ASCII visibles 1 à 127).
grammaire
description partielle
object est une expression d'objet dont la valeur est "appliquée" à un objet de la liste.
index est un entier qui identifie de manière unique un contrôle dans le tableau de contrôles (disponible uniquement pour les tableaux de contrôles).
keyascii est un entier qui renvoie un code de clé ANSI numérique standard. Keyascii transmet un objet par référence, ce qui rend possible ses modifications.
Envoyez un personnage différent. Changer keyascii sur 0 annule la frappe afin que l'objet ne reçoive aucun caractère.
illustrer
L'objet avec le focus reçoit cet événement. Un formulaire peut recevoir cet événement uniquement si la propriété KeyPreview est définie sur True. Un événement KeyPress peut faire référence à n'importe quel caractère imprimable du clavier, un caractère de l'alphabet standard ou l'un des quelques caractères spéciaux en combinaison avec la touche CTRL et la touche ENTRÉE ou RETOUR ARRIÈRE. La procédure événementielle KeyPress() est utile lors de l'interception de frappes saisies dans un contrôle TextBox ou ComboBox. Il peut tester instantanément la validité des frappes ou formater les caractères au fur et à mesure de leur saisie. Changer la valeur du paramètre keyascii modifiera les caractères affichés.
Vous pouvez utiliser l'expression suivante pour convertir le paramètre keyascii en caractère :
illustrer
Pour les deux événements, l'objet ciblé reçoit toutes les frappes. Un formulaire ne peut obtenir le focus que s’il ne comporte aucun contrôle visible et valide. Bien que les événements KeyDown() et KeyUp() puissent être appliqués à la plupart des touches, ils le sont le plus souvent : aux touches de caractères étendues telles que les touches de fonction, les touches de navigation, les touches de modification du clavier et les combinaisons de touches, distinguant les pavés numériques des touches numériques normales ; lorsque vous devez répondre à la fois en appuyant et en relâchant une touche, vous pouvez utiliser les procédures événementielles KeyDown et KeyUp.
Les événements KeyDown et KeyUp ne peuvent pas être référencés dans les situations suivantes : le formulaire possède un contrôle CommandButton et la touche ENTRÉE lorsque la propriété Default a la valeur True. Le formulaire possède un contrôle CommandButton, et lorsque la propriété Cancel est définie sur True, la touche ESC, la touche TAB, KeyDown et KeyUp utilisent deux paramètres pour interpréter les formes majuscules et minuscules de chaque caractère : keycode - affiche la clé physique (remplacer A et a renvoie la même touche) et shift-affiche l'état de la touche shift+key et renvoie l'un des A ou a.
Si vous devez tester le paramètre shift, vous pouvez utiliser la constante de décalage définie dans le paramètre. Cette constante a les valeurs suivantes :
Description de la valeur constante
vbShiftMask 1 bit de clé HIFT
bouclier.
VbCtrlMask 2 Touche CTRL
masque de bits.
VbAltMask 4 bits de la clé ALT
bouclier.
Cette constante agit comme un masque de bits, qui peut être utilisé pour tester n'importe quelle combinaison de touches.
Remarque : Si la propriété KeyPreview est définie sur True, un formulaire reçoit cet événement avant les contrôles du formulaire. Vous pouvez utiliser la propriété KeyPreview pour créer des routines globales de gestion du clavier.
Avec les connaissances ci-dessus, nous pouvons créer un programme parfait avec des touches de raccourci. Par exemple, dans un programme, nous devons utiliser Ctrl+S pour enregistrer, Shift pour minimiser, Alt+X et ESC pour quitter :
Commencez par démarrer VB et sélectionnez un nouveau fichier EXE, extrayez un TextBox sur le formulaire Form1 et définissez la propriété KeyPreview de Form1 sur True, double-cliquez sur Form1, sélectionnez l'événement KeyPress du formulaire et entrez le code suivant :