Ce n'est pas logique, mais c'est peut-être moi !!!

Bonsoir,

J'ai planché pas mal de temps sur ce petit problème de "coche"-"décoche" dans une CheckesListBox.

Mon souhait est de ne pouvoir sélectionner qu'un item à la fois dans la liste.
Le code ci-joint fonctionne parfaitement si je passe d'un Item à un autre.
Mais si je sélectionne par exemple Item B, puis le déselectionne, puis le resélectionne.
La "coche" ne se met pas..... ou alors après quelques essais d'une manière non constante d'ailleurs.
Parfois en insistant après 3 clics, parfois après 5 clics, rarement directement.

En cherchant sur le net, j'ai trouvé des exemples mais qui ressemeblent presque 100% à mon code !!

Quelqu'un voit il la faille ?

Merci

Pierre

Nom : checkedlistbox.jpg
Affichages : 463
Taille : 23,9 Ko
Nom : checkedlistbox2.jpg
Affichages : 444
Taille : 19,8 Ko

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
20
21
22
23
24
25
26
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        CheckedListBox1.Items.Clear()
 
        CheckedListBox1.Items.Add("ITEM A")
        CheckedListBox1.Items.Add("ITEM B")
        CheckedListBox1.Items.Add("ITEM C")
    End Sub
 
 
    Private Sub CheckedListBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles CheckedListBox1.MouseClick
 
        Dim idx, sidx As Integer
 
        sidx = CheckedListBox1.SelectedIndex
 
        For idx = 0 To CheckedListBox1.Items.Count - 1 Step 1
            If idx <> sidx Then
                CheckedListBox1.SetItemChecked(idx, False)
            Else
                CheckedListBox1.SetItemChecked(sidx, True)
            End If
        Next idx
 
    End Sub
End Class