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.
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
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 ?
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 !?
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
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.
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 ?