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