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.NET Discussion :

deselection d'un element d'une listBox


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut deselection d'un element d'une listBox
    Bonjour,

    J'ai un problème pour desélectionner un item dans une liste box.

    J'ai une zone de texte pour entrer le nom d'un joueur, je fais une recherche dans la base au fur et à mesure pour avoir une liste des noms de joueurs contenant les caractères saisis.


    La zone de saisie est une textbox et l'affichage des pseudos se fait dans une listbox.

    Depuis la txtbox, quand on appuie sur la flèche directionnelle bas, on passe à la listbox. Et je souhaite faire le chemin inverse.

    Voici le code pour cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ListBox_ListJoueurs_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox_ListJoueurs.KeyDown
     
            If e.KeyCode = Keys.Up And ListBox_ListJoueurs.SelectedIndex = 0 Then
                TxtBox_Joueur.Focus()
                TxtBox_Joueur.SelectionStart = TxtBox_Joueur.Text.Length
                ListBox_ListJoueurs.SelectedIndex = -1
            End If
     
        End Sub
    Donc quand je suis sur l'item du haut (index = 0) et que j'appuie sur Haut, je remonte bien dans ma textbox et le curseur est au dernier caractère mais l'élément sélectionné dans le listbox refuse de se desélectionner.

    Si j'utilise le même code en utilisant une touche telle que le E ou tout autre lettre, ca marche, mais avec les touches directionnelles, ca ne marche pas.
    Avec l’évènement KeyUp, cela fonctionne également mais je remplie les conditions quand je remonte de l'item 1 à l'item 0, en relâchant le bouton, je remonte vers la txtbox : impossibilité de sélectionner l'item 0

    Merci d'avance pour l'aide que vous pourriez m'apporter

  2. #2
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Salut,

    Ajoute un :

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Je ne comprend pas l'interet du select.
    Mon problème est lié à la listbox donc je ne pense pas qu'en agissant sur la txtbox on puisse remédier au problème.

    Et pour moi ta solution prend la place du

  4. #4
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    J'avais déjà eu ce soucis sur une appli, et le select avait régler ce problème. Si j'ai bien compis tu veux perdre le focus sur ta listbox car elle est toujours en sélectionner c'est sa ?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Non, j'arrive a prendre le focus sur le txtbox.

    Ce que je n'arrive pas à faire, c'est à desélectionner l'item du haut dans la listbox quand je la quitte.
    Ce n'est pas d'une grande importance, c'est purement esthétique mais c'est le défit qui m'interesse :p

  6. #6
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    As-tu essayer ce que je t'ai dit?

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    oui, j'ai essayé de le mettre à la place du focus et en plus du reste.

    Mais je continue à penser que ce n'est pas en agissant sur la txtbox que je changerait quelque chose à la listbox

  8. #8
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Il y a 2 événements sur la KeyUp : un qui est lié à ta listbox et un autre que tu as défini, sa explique pourquoi sa fonctionne avec les touches E, A ... ou autres.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Mouai,

    je sens que je vais régler ca avec un timer, c'est lourd comme solution mais ca devrait faire l'affaire pour faire abstraction d'un des evenements.

    Mais je ne comprend pas pourquoi ca ne veut pas marcher avec les fleches directionnelles sur un keydown alors que ca marche sur un keyup ou avec d'autres touches.... les mystère de la programmation

  10. #10
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Y'a certainement une explication logique et censé mais elle m'échappe, mais pour moi le fait d'avoir déjà un évènement sur les touches fléchées haut et bas perturbe ta fonctionnalité.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Ca vient très certainement de ca.

    Merci quand même. Je vais essayer de gérer ca avec un timer

  12. #12
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Non j'ai mieux tu fait sur l'événement LostFocus


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub ListBox_ListJoueurs_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox_ListJoueurs.LostFocus
     
            If e.KeyCode = Keys.Up And ListBox_ListJoueurs.SelectedIndex = 0 Then
                TxtBox_Joueur.Focus()
                TxtBox_Joueur.SelectionStart = TxtBox_Joueur.Text.Length
                ListBox_ListJoueurs.SelectedIndex = -1
            End If
     
        End Sub

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    J'ai trouvé cette idée géniale, bien plus propre que mon timer, mais ca ne marche pas :p

    Je crois qu'il ne prend pas en considération la perte de focus quand je met le focus sur la txtbox. Mais ca marche si je fais une tabulation pour passer sur un autre element...

  14. #14
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Essaye de prendre le raisonnement inverse du coup, tu fait ta méthode sur le go on focus de ton textbox mais sa me parait moins adapté a ta situation.

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    J'ai essayé avec le focus, le select et avec SelectNextControl sans succès.

    J'ai mis un timer avec une variable binaire pour résoudre le problème. Le seul inconvénient c'est que si le temps est trop court, il ne faut pas que le gars appuie trop longtemps sur le bouton et s'il est trop long, il faut attendre pour réappuyer.

    Ca fera l'affaire, ce n'est qu'une petite application perso, je me prends deja la tete depuis 2 jours sur ce petit truc, y'a plus interessant à faire pour ce soft

    Merci du coup de main

  16. #16
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Arf dommage bon courage pour la suite

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Par défaut
    C'est pas la solution la plus chic mais tu peux mettre le SelectMode à None dans l'événement KeyDown:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        If e.KeyCode = Keys.Up And ListBox1.SelectedIndex = 0 Then
                TextBox1.Focus()
                TextBox1.SelectionStart = TextBox1.Text.Length
                 ListBox_ListJoueurs.SelectionMode = SelectionMode.None
        End If
    Et le remettre à One au moment où tu le désires.

    Pascal

  18. #18
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Et bah c'est parfait, ça revient à faire sauter les plomb pour éteindre la lumière mais ça marche

    Merci beaucoup, c'est quand même plus classe que le timer qui n'était pas vraiment parfait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Selectionner plusieurs elements dans une ListBox
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 01/03/2007, 08h27
  2. Réponses: 6
    Dernier message: 07/09/2006, 15h35
  3. Réponses: 4
    Dernier message: 24/05/2006, 16h05
  4. Réponses: 2
    Dernier message: 22/05/2006, 16h36
  5. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/07/2004, 11h38

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