Donner une action a une touche presser du clavier . SVP [Résolu]

Messages postés
19
Date d'inscription
samedi 25 septembre 2004
Dernière intervention
17 août 2013
- - Dernière réponse : ScSami
Messages postés
1490
Date d'inscription
mercredi 5 février 2003
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é !
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
8
3
Merci
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 !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Messages postés
19
Date d'inscription
samedi 25 septembre 2004
Dernière intervention
17 août 2013
0
Merci
GROS GROS GROS MERCI !!!!fonctionne trés bien !!!ouf sauvé !! tu peut pas savoir a quelle point tu me sauve !! lol.
Messages postés
4
Date d'inscription
mercredi 25 mai 2005
Dernière intervention
28 mai 2005
0
Merci
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
Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
26
0
Merci
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.