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
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.