Donner une action a une touche presser du clavier . SVP

Résolu
psyko_flex Messages postés 23 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 23 novembre 2022 - 27 mai 2005 à 22:05
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 28 mai 2005 à 05:56
voila je voudrais savoir comment on pourrai donner une action a une touche du clavier presser,par exemple exectuer une fonction deja crée.
j'ai deja essaié po mal de truc comme ca par ex

Private Sub Form_KeyPress(KeyAscii As Integer)If KeyAscii Asc("a") Or KeyAscii Asc("A") Then
'mettre l'action a executer ici si on appuie sur A
End If
End Sub

mais rien n y fé ! SVP aidez moiii
sa doit po eter compliké !

4 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
27 mai 2005 à 22:22
Salut,

Met la propriété KeyPreview de ta form à true.
De cette façon, l'analyse des touches pressées passera d'abord par le keypress de la form, avant le keypress du controle qui a le focus.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
psyko_flex Messages postés 23 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 23 novembre 2022
27 mai 2005 à 22:38
GROS GROS GROS MERCI !!!!fonctionne trés bien !!!ouf sauvé !! tu peut pas savoir a quelle point tu me sauve !! lol.
0
jonhwoods Messages postés 4 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 28 mai 2005
28 mai 2005 à 04:39
Tu peut aussi utiliser Form_Keydown

Tu remarquera que sa fait Form_Keydown(Keycode as...

Le Keycode est le code de la touche. Pour le savoir pour chaque touche tu n'a qu'à faire:

Label.Caption = Keycode

Ainsi en appuyant sur une touche sa te donne son code
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
28 mai 2005 à 05:56
Oui mais as-tu compris ton erreur ???



Au cas où... je t'explique rapidement :



En fait, tu as fait appele à la "procédure évenementielle" (c'est à
dire, c'elle qui se lance lors d'un évenement utilisateur [entre
autre!] comme l'est "KeyPress") de la FORM et non du contrôle (bouton,
champ de texte, ...) sur lequel tu travailles.



Autrement dit, si tu veux qu'un champ de texte réagisse à l'appuis
d'une touche, il faut travailler sur SA procédure KeyPress (a
condition, évidemment, que le controle en question en possède une...
pour le savoir, regarde l'aide du VB [la fameuse MSDN]). Or toi tu as
fait appele à la procédure évenementielle de la FORM!



Lorsque tu appuies sur une touche, le code de cette touche est d'abord
envoyée à la procédure KeyPress de ton controle si elle est implémentée
(codée). Or, avec la Propriété "KeyPreview" des Forms, le code de la
touche, avant d'être envoyé à la procédure tonControl_KeyPress(...),
est envoyé à celle de la form [ Form_KeyPress(...) ].



Ceci afin de centraliser, si tu le veux, la gestion du clavier pour tous les controles de ta Form!



Donc, si tu utilises un champ de texte, tu aurais dû écrire plutôt :

Private Text1_KeyPress(...)





Enjoy
0
Rejoignez-nous