Déselectionner dans les listbox

Description

Suite au message de Stan sur le forum, je met ce code qui permet de dessélectionner les selections dans des listbox.
Lorsqu'on click dans une listbox, ça enlève les sélections dans les autres.
Pour les list multiselect, il n'y a pas de probleme.
Par contre pour les simple select je n'ai pas trouvé de truc convenable, alors je supprime tous les item, puis je les replace dans la list.
C'est pas très propre, mais sur des list de petites tailles, ce n'est pas très génant.
Je n'ai rien trouvé qui puisse desselectionner directement dans les simple select
(alors si quelqu'un a cette soluce beaucoup plus propre, qu'il n'hésite pas...)

Pour utiliser le code:
Créer 6 listbox(les 3 premieres en multiselection et les 3 autres en simple) et coller le code qui suit.
ou télécharger le projet(2ko).

Source / Exemple :


'##############################################
' site: http://www.jeromax.free.fr
'##############################################
Const LB_RESETCONTENT = &H184 'efface tous les elements de la liste
Const LB_SETSEL = &H185       'selectionne le
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long

Private Sub Form_Load()
    'remplissage des listes 'multiselection'
    List1.AddItem ("UN")
    List1.AddItem ("DEUX")
    List1.AddItem ("TROIS")
    List1.AddItem ("QUATRE")
    List2.AddItem ("CINQ")
    List2.AddItem ("SIX")
    List2.AddItem ("SEPT")
    List2.AddItem ("HUIT")
    List3.AddItem ("NEUF")
    List3.AddItem ("DIX")
    List3.AddItem ("ONZE")
    List3.AddItem ("DOUZE")
    'remplissage des listes 'simple selection'
    List4.AddItem ("UN")
    List4.AddItem ("DEUX")
    List4.AddItem ("TROIS")
    List4.AddItem ("QUATRE")
    List5.AddItem ("CINQ")
    List5.AddItem ("SIX")
    List5.AddItem ("SEPT")
    List5.AddItem ("HUIT")
    List6.AddItem ("NEUF")
    List6.AddItem ("DIX")
    List6.AddItem ("ONZE")
    List6.AddItem ("DOUZE")
End Sub

Private Sub List1_Click()
        'deselection de tous les item des 2 autres listes
        'false permet de desselectionner et true de selectionner
        lreturn = SendMessage(List2.hwnd, LB_SETSEL, False, -1&)
        lreturn = SendMessage(List3.hwnd, LB_SETSEL, False, -1&)
End Sub

Private Sub List2_Click()
        'deselection de tous les item des 2 autres listes
        lreturn = SendMessage(List1.hwnd, LB_SETSEL, False, -1&)
        lreturn = SendMessage(List3.hwnd, LB_SETSEL, False, -1&)
End Sub

Private Sub List3_Click()
        'deselection de tous les item des 2 autres listes
        lreturn = SendMessage(List1.hwnd, LB_SETSEL, False, -1&)
        lreturn = SendMessage(List2.hwnd, LB_SETSEL, False, -1&)
End Sub

Private Sub List4_Click()
        'on enleve tous les item des 2 autres listes
        lreturn = SendMessage(List5.hwnd, LB_RESETCONTENT, True, -1&)
        lreturn = SendMessage(List6.hwnd, LB_RESETCONTENT, True, -1&)
        'on re-rempli les 2 autres listes
        List5.AddItem ("CINQ")
        List5.AddItem ("SIX")
        List5.AddItem ("SEPT")
        List5.AddItem ("HUIT")
        List6.AddItem ("NEUF")
        List6.AddItem ("DIX")
        List6.AddItem ("ONZE")
        List6.AddItem ("DOUZE")
End Sub

Private Sub List5_Click()
        'on enleve tous les item des 2 autres listes
        lreturn = SendMessage(List4.hwnd, LB_RESETCONTENT, True, -1&)
        lreturn = SendMessage(List6.hwnd, LB_RESETCONTENT, True, -1&)
        'on re-rempli les 2 autres listes
        List4.AddItem ("UN")
        List4.AddItem ("DEUX")
        List4.AddItem ("TROIS")
        List4.AddItem ("QUATRE")
        List6.AddItem ("NEUF")
        List6.AddItem ("DIX")
        List6.AddItem ("ONZE")
        List6.AddItem ("DOUZE")
End Sub

Private Sub List6_Click()
        'on enleve tous les item des 2 autres listes
        lreturn = SendMessage(List4.hwnd, LB_RESETCONTENT, True, -1&)
        lreturn = SendMessage(List5.hwnd, LB_RESETCONTENT, True, -1&)
        'on re-rempli les 2 autres listes
        List4.AddItem ("UN")
        List4.AddItem ("DEUX")
        List4.AddItem ("TROIS")
        List4.AddItem ("QUATRE")
        List5.AddItem ("CINQ")
        List5.AddItem ("SIX")
        List5.AddItem ("SEPT")
        List5.AddItem ("HUIT")
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.