Pb pour intercepter la touche Tabulation

Résolu
isaomi Messages postés 18 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 15 juin 2006 - 26 sept. 2005 à 17:55
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 27 sept. 2005 à 11:41
Bonjour,

Je travaille en VB6. J'ai un problème pour intercepter la touche Tabulation.
L'appui de cette touche ne déclenche aucun événement : ni keypress, ni keydown que ce soit au niveau de contrôle ou de la form.
Ce que je pourrais vous dire :
-Keypreview est false.
-La touche Enter est parfaitement interceptée
-Le contrôle concerné est un maskedbox, mais j'ai essayé sur un simple textbox et c'est idem.

Si quelqu'un a une idée, je prends
Merci à tous

8 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 11:41
salut,
tu peux mettre la propriété TabStop de tes contrôles (boutons, etc..) à False.
si bcp de contrôles, tu peux le faire dans une boucle. (For Each Ctrl in Me ......)
PCPT
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
26 sept. 2005 à 18:32
Salut,
Tu peux très bien intercepter la touche tabulation dans le keypress d'un controle.

if keyascii = 9 then
'pour ignorer
'keyascii = 0
'pour passer à un autre contrôle
'texttruc.setfocus
'etc ...
end if

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
isaomi Messages postés 18 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 15 juin 2006 1
26 sept. 2005 à 18:45
Normalement je devrais passer par le keypress, mais mon problème c'est que justement je ne passe pas dans cet évènement et je ne sais pas pourquoi.
Une autre idée ?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
26 sept. 2005 à 19:50
Je ne comprend pas non plus car, à partir du moment où tu saisis quelque chose, via le clavier, dans une textbox (ou un maskedit), tu passes forcément par le keypress de ces contrôles.
Il y a autre chose. Peut-être ton clavier qui est naze ? Pour d'autres applis, la touche fonctionne ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
26 sept. 2005 à 19:55
Dixit MSDN :

Les événements KeyDown et KeyUp ne sont pas invoqués pour :



<li>la touche ENTRÉE si la feuille contient un contrôle CommandButton
dont la propriété Default a la valeur True ;


</li><li>la touche ÉCHAP si la feuille comprend un contrôle CommandButton dont
la propriété Cancel a la valeur True ;


</li><li>la touche TAB.</li>

A priori c'est pareil pr le keypress



Désolé
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 sept. 2005 à 21:16
salut
VB6, testé, nikel...


Private Sub Form_Load()
Me.KeyPreview = True
End Sub
'
'
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 9 Then
KeyCode = 0
MsgBox "TAB"
Else
Debug.Print KeyCode
End If
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT
0
isaomi Messages postés 18 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 15 juin 2006 1
27 sept. 2005 à 09:22
Bonjour,

Si je mets le même code dans form_keydown (ou le keypress), le messagebox ne s'affiche pas. Bon, mon code n'est pas aussi simple, mais tout de même je ne comprends pas. Je dois avoir quelque chose dans mon source...La touche Enter ou Echap fonctionne.
0
isaomi Messages postés 18 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 15 juin 2006 1
27 sept. 2005 à 09:35
Je viens de faire un test. J'ai écris un code aussi simple que "PCPT" et en effet ça fonctionne. Si on rajoute à la feuille un CommandButton, ça ne marche plus (Merci à "mrdep1978" de m'avoir mis sur la piste). Donc qu'est ce que peux faire pour intercepter cette touche sans enlever tous les commandButton que j'ai sur ma feuille ?¨Peut-être qu'il n'y a pas de solutions ?
0
Rejoignez-nous