IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

VBKEYTAB ne marche pas


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2021
    Messages : 21
    Points : 12
    Points
    12
    Par défaut VBKEYTAB ne marche pas
    Bonjour,

    dans mon précédent post je cherchais à boucler une action.
    Tout fonctionne à ceci près que la touche VBKEYTAB ne marche pas sur mon projet.

    J'ai essayé "If KeyCode = vbkeytab" cela ne fonctionne pas mais cela fonctionne avec n'importe quelle autre touche ex : VBKEYA ou VBKEYP...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If KeyCode = vbkeytab then
    	Dim Condition2 As Integer
    	For T = 1 To 5
    		Condition2 = VAL(GetVar(App.Path & "\accounts\" & Trim$(Login(index)) & ".ini", "INFO", "Numero" & T))
    		If NUMERO = T And Condition2 = T Then
    			NUMERO = T + 1
    			If NUMERO = 6 Then NUMERO = 1
    			Exit Sub
    		End If
    	Next T
    End If
    Faut il faire quelque chose en particulier pour activer la touche TAB dans un projet ?
    Merci

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 101
    Points : 16 617
    Points
    16 617
    Par défaut
    Salut

    De mémoire, il faut passer par l'évènement KeyDown et non KeyPress pour détecter les touches non imprimables, et interroger KeyCode.
    De plus tu peux faire un MsgBox KeyCode au moment de l’appui sur la touche Tab pour voir si sa valeur correspond bien à la constante VB6 vbKeyTab.

  3. #3
    Membre actif
    Homme Profil pro
    libre
    Inscrit en
    Juin 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Juin 2019
    Messages : 205
    Points : 292
    Points
    292
    Par défaut
    Par défaut le Tab est utilisé pour passer le focus au contrôle suivant sur la forme.

    Mettez la propriété TabKeyBehavior du contrôle en question à True pour pouvoir taper les tabs.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2021
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci @Wheel mais je n'utilise pas une form ou un champ TXT et par conséquent je ne peux pas basculer sur True.

    @Progelect merci, y'a t'il un tutoriel ou exemple car je n'ai pas tout compris

    Merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2021
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Re,

    j'ai passé la journée à fouiller le NET et j'en arrive à ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Explicit
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Const VK_TAB = &H9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        If ConOff = True Then Exit Sub
        If ConOff2 = True Then Exit Sub
        Call CheckInput(1, KeyCode, Shift)
     
    If GetAsyncKeyState(VK_TAB) <> 0 Then
    MsgBox "TEST"
    End If
     
     
        On Error Resume Next
    End Sub
    De ce fait lorsque j'appuie sur la touche TABULATION puis n'importe qu'elle autre touche cela m'affiche bien le message "TEST".

    Sauf que ce que je cherche à faire c'est afficher le message "TEST" lorsque j'appuie sur le touche TABULATION.

    Je précise que je n'ai aucune TEXTBox et que je veux que cela s'execute depuis ma FORM.

    Quelqu'un a une idée ?

  6. #6
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 101
    Points : 16 617
    Points
    16 617
    Par défaut
    Salut

    Il faut mettre la propriété KeyPreview du Form à True de façon à que l'évènement survienne au niveau du formulaire avant tout autres contrôles.
    vbKeyTab = 9, il n'est pas à redéclarer, il fait parti des constantes de VB6.

    Si tu fait MsgBox KeyCode dans la procédure Form_KeyDown(KeyCode As Integer, Shift As Integer), pour la mise au point, cela devrait t'afficher 9 pour la touche Tab

  7. #7
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2021
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Re Progelect,

    KeyPreview est bien sur TRUE.
    Voici le code modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        If ConOff = True Then Exit Sub
        If ConOff2 = True Then Exit Sub
        Call CheckInput(1, KeyCode, Shift)
     
    MsgBox KEYCODE
     
     
        On Error Resume Next
    End Sub
    Lorsque j'appuie sur une touche cela m'affiche le numéro de la touche.
    Mais lorsque j'appuie sur TABULATION ça ne fonctionne pas.



    De plus il me semble que je suis obligé de déclarer VK_TAB c'est une clé virtuel non ?
    Sans quoi la touch TAB n'est pas utilisable.

    Je bloque

  8. #8
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 101
    Points : 16 617
    Points
    16 617
    Par défaut
    Salut

    Ce matin j'ai remis un ordinateur qui à VB6 d’installé.
    Sur un Form 2 Labels, 1 TextBox et 1 bouton et ...... ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
     
    Private Sub Form_Load()
    Form1.KeyPreview = True
    Label1.Top = 180: Label2.Top = 540
    Label1.Left = 180: Label2.Left = 180
    Label1.Height = 315: Label2.Height = 315
    Label1.Width = 1215: Label2.Width = 1215
    Label1.Caption = "KeyCode = ": Label2.Caption = "Shift = "
    End Sub
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Label1.Caption = "KeyCode = " & KeyCode
    Label2.Caption = "Shift = " & Shift
    End Sub
    Tout fonctionne.

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo