psyko_flex
Messages postés23Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention23 novembre 2022
-
27 mai 2005 à 22:05
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDerniè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é !
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 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 !?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 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 :