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 :

Fleches directionnelles avec optionlist


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Par défaut Fleches directionnelles avec optionlist
    Bonjour à tous,

    Je souhaiterai indiquer à mon programme que lorsque l'utilisateur appuie sur la flèche du haut ou du bas que cela fasse descendre la ligne de sélection dans une FlexGrid.

    Cela fonctionne bien lorsque je suis dans une TextBox mais pas lorsque que je suis dans un groupe de boutons Option. En fait mon évènement ou je vérifie si c'est la touche vbkeyup/vbkeydown est ignoré D'ailleurs je rencontre le meme problème lorsque je suis dans une combobox.

    L'évènement intégré au composant lui meme (flèche du bas sur une combo engendre de de passer à l'élément suivant) ne peut il pas être "bloqué" ?

    Merci d'avance.


    Sébastien

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Désolé mais je ne comprends pas ce que tu veux.
    Tu veux pouvoir utiliser les fleches ou bloquer l'utilisation des fleches et sur quels controles ? Tu parles de bouton radio, de FlexGrid, de zone text et de combo !

    Il y a éventuellement la possibilité de mettre la propriété KeyPreview de ta feuille à True et d'intercepter l'appui des touches à ce niveau, tu regardes alors quel controle a le focus et tu agis en conséquence.

  3. #3
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    tu mélanges tout et on ne comprend rien à ce que tu veux faire !

    Merci de vous exprimer CLAIREMENT pour exposer votre problème, on n'est pas ici pour jouer aux devinettes !!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Par défaut
    En gros je veux pouvoir utiliser les flèches directionnelles pour faire monter ou descendre le curseur dans la FlexGrid et ce avec tout composant de ma Form.

    Avec une textbox, j'y arrive pas de souci mais en revanche avec une combo ou une optionlist je ne peux pas...

    Est ce plus clair ?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Tu doit mettre les tests dans les événement KeyUp ou KeyDown
    Exemple pour un flexGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
        Select Case KeyCode
        Case vbKeyUp
            If MSFlexGrid1.Row > MSFlexGrid1.FixedRows + 1 Then
                MSFlexGrid1.Row = MSFlexGrid1.Row - 1
            End If
        Case vbKeyDown
            If MSFlexGrid1.Row < MSFlexGrid1.Rows - 2 Then
                MSFlexGrid1.Row = MSFlexGrid1.Row + 1
            End If
        End Select
    End Sub
    Voila, j'espere que c'est ça que tu voulais.
    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Par défaut
    Hello,

    Merci pour ta réponse mais en fait j'avais réussit à faire ce que tu as mis sur la flexgrid.


    Le problème que je rencontre est sur le composant optionlist lorsque le focus est dessus. Si j'appuie sur la flèche du haut ou du bas, je passe de mon optionlist(0) à optionlist(1) par exemple...

    Alors que j'ai bien défini comme sur la grid, si vbkeyup=>grd.row=grd.row+1

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par sebast1
    Lorsque je suis sur mon groupe d'option button, je veux pouvoir faire varier la ligne sélectionnée dans ma Grid (grace aux fleches haut et bas du clavier) et non passer d'un option button à un autre
    Pour un groupe d'options (idem pour des CheckBoxs)
    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
    16
    17
    18
    19
    Option Explicit
    Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Integer
    Private Sub Option1_Validate(Index As Integer, Cancel As Boolean)
    'quelle touche ?
    If GetAsyncKeyState(vbKeyDown) <> 0 Then
     Cancel = True
     If MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
      MSFlexGrid1.Row = MSFlexGrid1.Row + 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    If GetAsyncKeyState(vbKeyUp) <> 0 Then
     Cancel = True
     If MSFlexGrid1.Row > MSFlexGrid1.FixedRows Then
      MSFlexGrid1.Row = MSFlexGrid1.Row - 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    End Sub
    Une ListBox
    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
    16
    Private Sub List1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyDown Then
     KeyCode = 0
     If MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
      MSFlexGrid1.Row = MSFlexGrid1.Row + 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    If KeyCode = vbKeyUp Then
     KeyCode = 0
     If MSFlexGrid1.Row > MSFlexGrid1.FixedRows Then
      MSFlexGrid1.Row = MSFlexGrid1.Row - 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    End Sub
    Un ComboBox
    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
    16
    Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyDown Then
     KeyCode = 0
     If MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
      MSFlexGrid1.Row = MSFlexGrid1.Row + 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    If KeyCode = vbKeyUp Then
     KeyCode = 0
     If MSFlexGrid1.Row > MSFlexGrid1.FixedRows Then
      MSFlexGrid1.Row = MSFlexGrid1.Row - 1
      MSFlexGrid1.TopRow = MSFlexGrid1.Row
     End If
    End If
    End Sub
    Je pense qu'il doit être possible de faire la même chose pour d'autres contrôles ....
    Citation Envoyé par ThierryAIM
    je lui offre 1 an d'abonnement gratuit à dvp.com

    A+
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Modifier une Roi avec fleches directionnelles
    Par rhand dans le forum Images
    Réponses: 2
    Dernier message: 21/02/2015, 01h02
  2. Réponses: 2
    Dernier message: 04/06/2008, 22h02
  3. parcourir les Jmenu avec les fleches directions avec [alt]
    Par mortalius dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/04/2006, 15h04
  4. Fleches directionnelles, structure termios
    Par red210 dans le forum C
    Réponses: 2
    Dernier message: 30/11/2005, 14h48
  5. utiliser les fleche directionnel
    Par darkmalak01 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/09/2005, 15h29

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