LISTBOX MULTI COLONNES

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 - 25 avril 2005 à 16:51
50415041 Messages postés 3 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 20 novembre 2006 - 20 nov. 2006 à 10:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30975-listbox-multi-colonnes

50415041 Messages postés 3 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 20 novembre 2006
20 nov. 2006 à 10:54
OK MEN
lhoussin2006 Messages postés 6 Date d'inscription mercredi 2 août 2006 Statut Membre Dernière intervention 9 août 2006
22 août 2006 à 11:51
j'ai pas vu pour les Listview mais je n'estime pas que j'arriverais à les comprendre, ce qui est tout à fait génial c'est l'idée et l'algorithme que tu as choisis pour te débrouiller.
bravo!
cs_Jielde Messages postés 226 Date d'inscription mardi 17 octobre 2000 Statut Membre Dernière intervention 1 décembre 2010
22 juin 2006 à 01:55
Oui un combo/TextBox te permettra de faire des recherche intuitive dans la listbox.
ORTIPIC Messages postés 41 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 16 juillet 2007
21 juin 2006 à 18:06
j espere que la reponce de jielde satisfait couteau7 ?

un label semble une solution

ou un combo pour memoriser les interactions prog utilisateur
couteau7 Messages postés 24 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 23 juin 2007 1
21 juin 2006 à 07:05
Oui j'y avais pensé mais bon je pense que je vais le faire sa va me faire moins de boullot comme ça
cs_Jielde Messages postés 226 Date d'inscription mardi 17 octobre 2000 Statut Membre Dernière intervention 1 décembre 2010
20 juin 2006 à 22:22
Moi a ta place, et j'ai fait sa dans mon appli, j'ai ajouter des label en haut de chaque listbox, et kan je click sur un label sa trie la listbox de facon ascendent ou déscendant.
couteau7 Messages postés 24 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 23 juin 2007 1
20 juin 2006 à 19:40
Bonjour, peut être que vous pourrez me sauver la vie sa va fair 2 semaine que je cherche dans tous les coins et la je suis limite a jeter mon ordinateur j'ai réaliser un petit programme qui n'a pas besoins d'un listview mais juste une listbox a 2 colonnes.

Pour les remplir il y a pas de problème meme pour acceder au information mais mon réel problème c'est comment ajouter dans l'en tete des colonne se que se represent dans la colonne 1 c'est "Articles" et dans la 2 emme c'est "Quantité" j'ai tout tester j'ai regarder dans tout les code que j'ai pu trouver il y a tout d'expliquer mais rien sur sa .

veuillez m'excuser de < m'incruster >

Encore merci
cs_Jielde Messages postés 226 Date d'inscription mardi 17 octobre 2000 Statut Membre Dernière intervention 1 décembre 2010
26 avril 2006 à 19:30
Effectivement, les ListView sont mieux.

Mais je prog une appli pour me facilité la vie dans a mon boulot, et la société a bloquer pas mal de choses dans Win2k

Je ne peut donc pas installer de nouvelles OCX et j'ai du revenir sur les bon vieux ListBox.

J'avais déja trouvé l'idée de mettre bout a bout chaque listbox, avec des labels comme en-tête de colonne.

Par contre j'arrivais pas a faire en sorte que toutes les listbox scroll en même temps. Et les Timer sont une solution.

Si vous avez d'autre solutions, je suis preneur.
ORTIPIC Messages postés 41 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 16 juillet 2007
16 juil. 2005 à 12:01
Badge

cette source est tres mediocre.............
mais je n avais pas encore testé un listview ,et c est bien mieu
j ai trouvé cette source qui explique bien ,de qui ???? chépu
j ai apporté une modif (rnd......) pour bien voir le tri des colonnes

'---------------------vla------------------------
une form /un listview /ajout du composant micro...windows....comm.....control (version 6 sp6)
'------------------------------------------------
Private Sub Form_Load()

Dim i As Integer ' Compteur
Dim j As Integer ' Compteur d'objets ListSubItems
Dim sngWidth As Single
Dim si As ListSubItem
Dim li As ListItem

' Les objets ColumnHeaders et ListSubitems ne sont pas visibles
' sauf si la valeur lvwReport est affectée à la propriété View.
ListView1.View = lvwReport

' Calcule la largeur d'un objet ColumnHeader.
sngWidth = ListView1.Width / 5

' Crée cinq objets ColumnHeader.
For i = 1 To 5
ListView1.ColumnHeaders.Add Text:="Col " & i, Width:=sngWidth
Next i

' Crée vingt objets ListItem. Pour chacun d'entre eux, crée quatre
' objets ListSubItem. Définit la couleur rouge pour la propriété
' ForeColor de chaque objet.
For i = 1 To 20
Set li = ListView1.ListItems.Add(Text:="Élément " & i)
For j = 1 To 4
Set si = li.ListSubItems.Add(Text:="Sous-élément " & Int(Rnd * 100)) '' j & i &
si.ForeColor = vbRed
Next j
Next i

End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
' Quand vous cliquez sur un objet ColumnHeader, le contrôle
' ListView est trié selon les sous-éléments de cette colonne.
' Affecte à la propriété SortKey l'index de ColumnHeader - 1
ListView1.SortKey = ColumnHeader.Index - 1
' Affecte à la propriété Sorted la valeur True afin de trier la
' liste.
ListView1.Sorted = True
End Sub


Private Sub ListView1_ColumnClickdd(ByVal ColumnHeader As _
MSComctlLib.ColumnHeader)
' tri du ListView lors du clic sur l'entête de colonne

Dim strName As String
Dim dDate As Date
Dim lngItem As Long
Dim dTaille As Long

'Handle User click on column header
Select Case ColumnHeader.Text
Case "Fichier" 'User clicked sur l'entete d'une colonne texte
ListView1.Sorted = True 'Use default sorting to sort the
ListView1.SortKey = 0 'items in the list
ListView1.SortKey = ColumnHeader.Index - 1
ListView1.SortOrder = (ListView1.SortOrder - 1) * -1
Case "Date" 'User clicked sur l'entete d'une colonne date
ListView1.Sorted = False 'User clicked on the Date header
'Use our sort routine to sort
indice = 1 'by date
Asce = Not Asce
SendMessage ListView1.hWnd, _
LVM_SORTITEMS, _
ListView1.hWnd, _
AddressOf CompareDates
ListView1.Refresh
For lngItem = 0 To ListView1.ListItems.Count - 1
ListView_GetListItem lngItem, ListView1.hWnd, strName, dDate
Next

Case "Taille" 'User clicked sur l'entete d'une colonne numérique
ListView1.Sorted = False
'Use our sort routine to sort
indice = 2 'by date
Asce1 = Not Asce1
SendMessage ListView1.hWnd, _
LVM_SORTITEMS, _
ListView1.hWnd, _
AddressOf CompareValeurs
ListView1.Refresh
For lngItem = 0 To ListView1.ListItems.Count - 1
ListView_GetListItemN lngItem, ListView1.hWnd, strName, dTaille
Next

End Select

End Sub
cs_NoFutur Messages postés 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
16 juil. 2005 à 10:56
Badge,

Si tu cherche à classer des infos dans une ListView va dans la sub "List1_ColumnClick" du controle ListView et copie ce bout de code : List1.SortKey = ColumnHeader.Index - 1 (List1 étant le nom d'occurence de ton ListView :-)

@plus
cs_BADGE Messages postés 2 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 15 juillet 2005
15 juil. 2005 à 20:46
Je trouve que le scroll "lag" trop à mon goût. Je dois avouer que j'ai déjà penser à cette solution, mais elle n'est pas esthétique. De plus, il n'est pas facilement transportable d'un projet à l'autre. Je préfère le ListView! Par contre, je n'ai pas trouvé comment changé l'ordre de tri en cliquant sur les en-têtes (headers) des colonnes.
cs_NoFutur Messages postés 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
26 avril 2005 à 18:51
Salut,

Je vais répondre à la question de ScSami :
Pour ceux qui ne veulent pas s'encombrer d'un ocx supplémentaire et qui ne sont pas trop exigeant ma fois ça peut toujours convenir qui sait :-)

@++
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
25 avril 2005 à 20:44
Bon, j'ai pas téléchargé la source mais selon ce que j'ai compris tu utilises plusieurs ListBox !!!!

Je n'ai qu'une question :
N'est-ce pas aberrant lorsqu'il existe les ListView ??????

Bonne prog.
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
25 avril 2005 à 16:51
Si tu veux faire du multi-colonnes avec un seul listbox, je te propose d'aller jeter un oeil à cette adresse : http://www.vbfrance.com/code.aspx?id=26686.

J'y ai déposé une source synthétisant plusieurs possibilités d'utilisation de l'API sendmessage avec un listbox ou un combobox. Tu y découvriras la manière de réaliser du multi-colonnes à la manière d'Access.

Bonne continuation.
Rejoignez-nous