Capturer la touche TAB

Capturer la touche TAB - VB/VBA/VBS - Programmation

Marsh Posté le 15-07-2005 à 19:58:57    

Comment puis-je capturer la touche TAB pour démarrer une procédure si la touche TAB est appuyé ? Car TAB est normalement utilisé pour changer de contrôle, mais est-ce qu'on peut capturer l'évênement ?  :)

Reply

Marsh Posté le 15-07-2005 à 19:58:57   

Reply

Marsh Posté le 15-07-2005 à 22:18:26    

Doit pouvoir se faire. le récupérer sur un Form ca doit être long mais dans un champ ca doit être simple :
Touches appuyée > Tab > action ...


---------------
now : do nothing
Reply

Marsh Posté le 16-07-2005 à 00:31:02    

Salut,
 
Voici un exemple d'interception de la touche TAB dans une TextBox :
 

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 9 Then
  KeyCode = 0
  '(la mise à 0 de KeyCode annule l'action de la tabulation, donc le Focus reste
  'dans la TextBox)
  'Ici: Appel de ta procédure
End If
End Sub


A+
Horatio
 
 

Reply

Marsh Posté le 16-07-2005 à 19:24:47    

Tu peux intercepter la touche « Tab » au niveau « Form » (avant le controle qui a le focus) en mettant « KeyPreview = True»  
 

Reply

Marsh Posté le 16-07-2005 à 19:54:23    

Ni l'une ou l'autre ne fonctionne. :)

Reply

Marsh Posté le 17-07-2005 à 23:45:51    

Je voulais dire KeyPreview en complément du code de Lord Nelson
 
Version VB avec un « TextBox » nommé Text1
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 9 Then
        KeyCode = 0
        MsgBox "Tabulation sur Form"
    Else
        Me.Caption = KeyCode
    End If
 
End Sub
 
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 9 Then
      KeyCode = 0
      '(la mise à 0 de KeyCode annule l'action de la tabulation, donc le Focus reste
      'dans la TextBox)
      'Ici: Appel de ta procédure
      MsgBox "Tabulation sur Text Box"
    End If
End Sub

Reply

Marsh Posté le 18-07-2005 à 21:12:57    

C'est normal que ça fonctionne avec UN seul textbox. Essaye avec 2 tu vas voir. :D

Reply

Marsh Posté le 18-07-2005 à 21:24:56    

NullDragon,
Alors que l'on cherche à t'aider, j'ai la désagréable impression que tu te fiches ouvertement de nous.  

Citation :

Ni l'une ou l'autre ne fonctionne. :)


Citation :

C'est normal que ça fonctionne avec UN seul textbox. Essaye avec 2 tu vas voir. :D


Que cherches-tu à prouver ?
 


---------------
A+
Reply

Marsh Posté le 18-07-2005 à 21:36:47    

Je ne me fiche de personne, vous me proposer des solutions, je les appliques et moi je viens gentiment reposter l'état des solutions que j'ai appliqués, voilà :)

Reply

Marsh Posté le 18-07-2005 à 23:15:55    

À ce stade je pense qu'il n'y a plus que le "subclassing" de la feuille (Form) qui puisse te permettre de récupérer le clavier avant qu'il ne soit interprété.  
Je ne me fiche pas de toi, tu cherches des solutions (sans moi), tu les appliques et tu viens gentiment poster l'état des solutions que t'as appliquées, voilà :)
 
Comme ça on saura aussi
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed