Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISATION DES LISTVIEWS


Information sur la source

Catégorie :Tutoriaux Classé sous : treeview, tutoriel, turorial Niveau : Débutant Date de création : 01/04/2002 Date de mise à jour : 10/07/2007 09:26:13 Vu / téléchargé: 9 646 / 1 576

Note :
8,29 / 10 - par 7 personnes
8,29 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Petit tutoriel pour débutants en VB expliquant le fonctionnement basique des ListViews.

Mise à jour du 30 Juin 2002:
- Changement de la capacité de l'ordinateur (voir items de la liste)
- Retaillage de la ListView plus stricte
- Changement de version du contrôle ListView fournie dans l'exemple (version 6 au lieu de 5)
- Option d'affichage d'une grille
- Mise d'un Timer (permettant de tenir compte des dimensions de la ListView après redimensionnement)

Ce qu'il vous faut:
- Une feuille
- Une ListView (Nom: View1) - Pour disposer du contrôle ListView, allez dans Projets\Composants et sélectionnez Microsoft Windows Common Controls X.X, avec X.X étant votre version de VB (normallement)
- Un système de menus
- Un Timer (Timer1)
Téléchargez le zip car j'ai pas eu trop envie de détailler le système de menus (je vous balance quand même la source pour les téméraires!)
Bonne chance et à plus.  
 

Source

  • Private Function ChargerListe()
  • 'On déclare ObjListe qui nous servira à fabriquer des nouveau objets de liste
  • Dim ObjListe As ListItem
  • 'On efface tout dans la liste
  • View1.ColumnHeaders.Clear
  • View1.ListItems.Clear
  • 'Ajoute les titres des colonnes
  • View1.ColumnHeaders.Add , , "Produit", View1.Width / 5
  • View1.ColumnHeaders.Add , , "Description", View1.Width / 1.5
  • View1.ColumnHeaders.Add , , "Prix (?)", View1.Width / 5.5
  • 'Ajoute le produit1
  • Set ObjListe = View1.ListItems.Add(, , "Logiciel")
  • 'Ajoute la description1
  • ObjListe.SubItems(1) = "Réalisé par Ammoni@k"
  • 'Ajoute le prix1
  • ObjListe.SubItems(2) = "500"
  • 'On recommence
  • Set ObjListe = View1.ListItems.Add(, , "Code")
  • ObjListe.SubItems(1) = "Fourni par Ammoni@k"
  • ObjListe.SubItems(2) = "10000"
  • Set ObjListe = View1.ListItems.Add(, , "Ordinateur")
  • ObjListe.SubItems(1) = "3 GHz, 512 Mo DDR-SDRAM 2, 120 Go, Ecran 21" & Chr(34)
  • ObjListe.SubItems(2) = "4000"
  • Set ObjListe = View1.ListItems.Add(, , "Ecran plat")
  • ObjListe.SubItems(1) = "TFT, 22" & Chr(34) & ", pitch 0,22"
  • ObjListe.SubItems(2) = "4500"
  • End Function
  • Private Sub Form_Resize()
  • 'Retaille la liste
  • View1.Top = 0
  • View1.Left = 0
  • View1.Height = Height - 600
  • View1.Width = Width - 100
  • End Sub
  • Private Sub smCacherTitres_Click()
  • If smCacherTitres.Checked = False Then
  • 'Coche la case correspondantes
  • smCacherTitres.Checked = True
  • 'Cache les titres
  • View1.HideColumnHeaders = True
  • Else
  • 'Décoche la case correspondantes
  • smCacherTitres.Checked = False
  • 'Montre les titres
  • View1.HideColumnHeaders = False
  • End If
  • End Sub
  • Private Sub smDescendant_Click()
  • smDescendant.Checked = True
  • smMontant.Checked = False
  • 'Active le tri alphabétique dans l'ordre descendant
  • View1.SortOrder = lvwDescending
  • End Sub
  • Private Sub smDétails_Click()
  • smDétails.Checked = True
  • smGdesIcones.Checked = False
  • smListe.Checked = False
  • smPetitesIcones.Checked = False
  • 'Active le mode petites icônes
  • View1.View = lvwReport
  • End Sub
  • Private Sub smGdesIcones_Click()
  • smDétails.Checked = False
  • smGdesIcones.Checked = True
  • smListe.Checked = False
  • smPetitesIcones.Checked = False
  • 'Active le mode grandes icônnes
  • View1.View = lvwIcon
  • End Sub
  • Private Sub smGrille_Click()
  • If smGrille.Checked = True Then
  • smGrille.Checked = False
  • View1.GridLines = False
  • Else
  • smGrille.Checked = True
  • View1.GridLines = True
  • End If
  • End Sub
  • Private Sub smListe_Click()
  • smDétails.Checked = False
  • smGdesIcones.Checked = False
  • smListe.Checked = True
  • smPetitesIcones.Checked = False
  • 'Active le mode liste
  • View1.View = lvwList
  • End Sub
  • Private Sub smMontant_Click()
  • smDescendant.Checked = False
  • smMontant.Checked = True
  • 'Active le mode de tri alphabétique montant
  • View1.SortOrder = lvwAscending
  • End Sub
  • Private Sub smMultiselection_Click()
  • If smMultiselection.Checked = False Then
  • 'Coche la case
  • smMultiselection.Checked = True
  • 'Active la multiselection
  • View1.MultiSelect = True
  • Else
  • 'Décoche la case
  • smMultiselection.Checked = False
  • 'Désactive la multiselection
  • View1.MultiSelect = False
  • End If
  • End Sub
  • Private Sub smNon_Click()
  • smOui.Checked = False
  • smNon.Checked = True
  • 'Désactive le tri alphabétique
  • View1.Sorted = False
  • End Sub
  • Private Sub smOui_Click()
  • smOui.Checked = True
  • smNon.Checked = False
  • 'Active le tri alphabétique
  • View1.Sorted = True
  • End Sub
  • Private Sub smPetitesIcones_Click()
  • smDétails.Checked = False
  • smGdesIcones.Checked = False
  • smListe.Checked = False
  • smPetitesIcones.Checked = True
  • 'Active le mode petites icônes
  • View1.View = lvwSmallIcon
  • End Sub
  • Private Sub smQuitter_Click()
  • 'Quitte le programme
  • End
  • End Sub
  • Private Sub smRecharge_Click()
  • 'Charge la liste
  • ChargerListe
  • End Sub
  • Private Sub Timer1_Timer()
  • 'Sélectionne le tri alphabétique
  • smOui_Click
  • 'Sélectionne le mode d'affichage des icônes avec détails
  • smDétails_Click
  • 'Charge la liste
  • ChargerListe
  • 'Arrêt du Timer
  • Timer1.Enabled = False
  • End Sub
Private Function ChargerListe()
'On déclare ObjListe qui nous servira à fabriquer des nouveau objets de liste
Dim ObjListe As ListItem
'On efface tout dans la liste
View1.ColumnHeaders.Clear
View1.ListItems.Clear
'Ajoute les titres des colonnes
View1.ColumnHeaders.Add , , "Produit", View1.Width / 5
View1.ColumnHeaders.Add , , "Description", View1.Width / 1.5
View1.ColumnHeaders.Add , , "Prix (?)", View1.Width / 5.5
'Ajoute le produit1
Set ObjListe = View1.ListItems.Add(, , "Logiciel")
'Ajoute la description1
ObjListe.SubItems(1) = "Réalisé par Ammoni@k"
'Ajoute le prix1
ObjListe.SubItems(2) = "500"
'On recommence
Set ObjListe = View1.ListItems.Add(, , "Code")
ObjListe.SubItems(1) = "Fourni par Ammoni@k"
ObjListe.SubItems(2) = "10000"
Set ObjListe = View1.ListItems.Add(, , "Ordinateur")
ObjListe.SubItems(1) = "3 GHz, 512 Mo DDR-SDRAM 2, 120 Go, Ecran 21" & Chr(34)
ObjListe.SubItems(2) = "4000"
Set ObjListe = View1.ListItems.Add(, , "Ecran plat")
ObjListe.SubItems(1) = "TFT, 22" & Chr(34) & ", pitch 0,22"
ObjListe.SubItems(2) = "4500"
End Function

Private Sub Form_Resize()
'Retaille la liste
View1.Top = 0
View1.Left = 0
View1.Height = Height - 600
View1.Width = Width - 100
End Sub

Private Sub smCacherTitres_Click()
If smCacherTitres.Checked = False Then
    'Coche la case correspondantes
    smCacherTitres.Checked = True
    'Cache les titres
    View1.HideColumnHeaders = True
Else
    'Décoche la case correspondantes
    smCacherTitres.Checked = False
    'Montre les titres
    View1.HideColumnHeaders = False
End If
End Sub

Private Sub smDescendant_Click()
smDescendant.Checked = True
smMontant.Checked = False
'Active le tri alphabétique dans l'ordre descendant
View1.SortOrder = lvwDescending
End Sub

Private Sub smDétails_Click()
smDétails.Checked = True
smGdesIcones.Checked = False
smListe.Checked = False
smPetitesIcones.Checked = False
'Active le mode petites icônes
View1.View = lvwReport
End Sub

Private Sub smGdesIcones_Click()
smDétails.Checked = False
smGdesIcones.Checked = True
smListe.Checked = False
smPetitesIcones.Checked = False
'Active le mode grandes icônnes
View1.View = lvwIcon
End Sub

Private Sub smGrille_Click()
If smGrille.Checked = True Then
    smGrille.Checked = False
    View1.GridLines = False
Else
    smGrille.Checked = True
    View1.GridLines = True
End If
End Sub

Private Sub smListe_Click()
smDétails.Checked = False
smGdesIcones.Checked = False
smListe.Checked = True
smPetitesIcones.Checked = False
'Active le mode liste
View1.View = lvwList
End Sub

Private Sub smMontant_Click()
smDescendant.Checked = False
smMontant.Checked = True
'Active le mode de tri alphabétique montant
View1.SortOrder = lvwAscending
End Sub

Private Sub smMultiselection_Click()
If smMultiselection.Checked = False Then
    'Coche la case
    smMultiselection.Checked = True
    'Active la multiselection
    View1.MultiSelect = True
Else
    'Décoche la case
    smMultiselection.Checked = False
    'Désactive la multiselection
    View1.MultiSelect = False
End If
End Sub

Private Sub smNon_Click()
smOui.Checked = False
smNon.Checked = True
'Désactive le tri alphabétique
View1.Sorted = False
End Sub

Private Sub smOui_Click()
smOui.Checked = True
smNon.Checked = False
'Active le tri alphabétique
View1.Sorted = True
End Sub

Private Sub smPetitesIcones_Click()
smDétails.Checked = False
smGdesIcones.Checked = False
smListe.Checked = False
smPetitesIcones.Checked = True
'Active le mode petites icônes
View1.View = lvwSmallIcon
End Sub

Private Sub smQuitter_Click()
'Quitte le programme
End
End Sub

Private Sub smRecharge_Click()
'Charge la liste
ChargerListe
End Sub

Private Sub Timer1_Timer()
'Sélectionne le tri alphabétique
smOui_Click
'Sélectionne le mode d'affichage des icônes avec détails
smDétails_Click
'Charge la liste
ChargerListe
'Arrêt du Timer
Timer1.Enabled = False
End Sub  

Conclusion

Si vous voulez d'autres infos ou des fonctions plus avancées sur les ListViews, n'hésitez pas à m'adresser un mail.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

10 juillet 2007 09:26:13 :
Des informations d'annotations n'étaient plus à jour

Commentaires et avis

signaler à un administrateur
Commentaire de madman le 19/12/2002 12:26:08

bon travail :)

signaler à un administrateur
Commentaire de Ammoniak le 20/12/2002 14:01:02

merci :-)

signaler à un administrateur
Commentaire de rnosat le 15/05/2003 13:32:21

Salut Ammoniak (pouahh! ca sent pas bon l'ammoniaque !)

J'ai une question a poser a propos de ListView : j'aimerai réserver une colonne d'un ListView pour y mettre une icone ou petite image (40x40) : saurais tu comment ?

Merci (et sans rancune pour le pouahh!)
Rnosat

signaler à un administrateur
Commentaire de Ammoniak le 21/05/2003 19:33:10

eh non désolé, je ne suis pas un méga-pro, juste un ptit programmeur, alors cherche un peu je ne pense pas que se soit super difficile ;-)
mais bon, ca doit être à base d'API de la mort et tout ça... rien de bien méchant...

signaler à un administrateur
Commentaire de popstatic le 25/06/2003 04:10:32

t'a une grooooosse config en tout cas! ;-)

signaler à un administrateur
Commentaire de Ammoniak le 10/07/2003 13:38:37

Ouep, mais bon ça sera dépassé dans pas très longtemps...

signaler à un administrateur
Commentaire de sophie1011 le 18/10/2003 22:16:44

Cette source m'a vraiment aidée! Si seulement il y en avait plus des comme ça sur les autres ocx! Elle est très claire, bien expliquée, et montre à peu près tout dans une apli simple, mais efficace.

signaler à un administrateur
Commentaire de sophie1011 le 13/11/2003 04:18:38

Comment on fait pour changer la valeur d'une des données déja dans le ListView?

signaler à un administrateur
Commentaire de ammoniakk le 07/01/2004 16:56:20

Pour changer une valeur:

View1.ListItems.Item(X).SubItems(Y) = "Nouvelle valeur"
X: numéro de l'item (ligne en général)
Y: numéro du subitem (colonne)

Attention le premier Subitem correspond à la deuxième colonne, la première est Text et pas SubItem[0]

signaler à un administrateur
Commentaire de fyxx le 29/09/2004 14:13:50

Genial, exactement ce que je cherchais, bon boulot !
par contre ton site, c'est une jolie collection de gif en construction, mais y'a pas de contenu... a quand la mise a jour? car tes sources sont interessantes, j'aimerais voir ce que ca donne...

signaler à un administrateur
Commentaire de Ammoniak le 01/10/2004 18:28:40

Merci beaucoup. Pour ce qi est du site, il est abandonné depuis plus d'un an, désolé, en tout cas merci encore pour les encouragements

signaler à un administrateur
Commentaire de bmwz3tds le 12/10/2004 16:31:35

Ton source est vraiment très bien... surtout pour les débutants ( comme moi par exemple )

Je cherche à recupérer l'index de la ligne sur laquelle je clique.
J'ai bien compris ton précédent message qui explique comment changer une valeur, mais je ne sais pas recuperer le "numéro de l'item (X)" ?

Si tu as une idéé, je suis preneur.
Bravo encore pour le source.
Bye

signaler à un administrateur
Commentaire de Ammoniak le 14/10/2004 22:53:42

Je suis désolé mais en ce moment je suis vraiment pris par le temps, en plus ça fait un an que je n'ai pas fait de VB... mais je pense que la réponse à la question n'est pas difficile à trouver en farfouillant un peu dans les propriétés du listview. Si tu n'arrives vraiment pas, reposte un ptit commentaire, j'essaierais de trouver un peu de temps pour t'aider.
Merci pour tes encouragements

signaler à un administrateur
Commentaire de Duke49 le 05/03/2009 22:14:53 7/10

C'est sympa comme exemple.

Cependant que faudrait t'il rajouter comme code
pour affiche un messagebox de la ligne complète
lorsque je double clique sur un élément de la listview ???

signaler à un administrateur
Commentaire de Ammoniak le 27/03/2009 07:56:20

Bmwz3tds > Avec un peu de retard, je pense que la solution à ton problème est :
ListView1.SelectedItem.Index

Duke49 > Je suppose tu pose ta question quand tu es en mode de vue détaillée (view=lvwRerport). A ce moment, l'affichage de la ligne se fait comme ça :

Private Sub ListView1_DblClick()
Dim li As ListItem
Dim s As String
Dim i As Integer
Set li = ListView1.SelectedItem
s = li.Text
For i = 1 To li.ListSubItems.Count
    s = s & ";" & li.ListSubItems(i).Text
Next i
MsgBox s
End Sub

signaler à un administrateur
Commentaire de Duke49 le 27/03/2009 09:47:33

Oui c'est ça ^^

signaler à un administrateur
Commentaire de Shion_SEIYA le 09/06/2009 14:49:36 10/10

Excellent le source.
En plus, tu réponds aux questions. Terrible !!!

Sinon, une petite question, tu as mis une commande pour cacher les titres... Existe t'il une commande de même type pour cacher ou montrer une colonne complète?

Merci

signaler à un administrateur
Commentaire de Ammoniak le 09/06/2009 18:19:35

Salut, merci pour les encouragements.
Malheureusement je ne vois pas comment faire pour ton problème.
Une piste quand même peut-être :
- enregistre View1.ColumnHeaders dans une variable globale
- supprime la colonne que tu souhaite (exemple : View1.ColumnHeaders.Remove 0
- enfin, si tu veux récupérer la colonne, fait Set View1.ColumnHeaders = taVariable
Je ne te garantie pas que ça marche, mais tu peux essayer.
Tiens moi au courant.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Drag Drop dans un Treeview [ par aheudes ] Comment programmer le déplacement d'un node dans un treeview par une opération dragdrop.Par avance, merci Drag Drop dans un Treeview [ par aheudes ] Comment programmer le déplacement d'un node dans un treeview par une opération dragdrop (pour changer le parent du node dans la hiérarchie).Par avance Connaître le scrollMax d'un contrôle Treeview [ par stephane ] Pour mon application, je met en place une routine pour imprimer la totalité d'un treeview. Pour cela, je fais défilier le treeview à l'aide de l'api s Arborescence des dossiers dans TreeView [ par mulo ] J'aurais besoin de selectionner et de récupérer le nom d'un dossier dans une arborescence. Les commonDialog ne permettent apparemment pas de le faire nodecheck et treeview [ par olivier ] comment gerer le nodecheck d'un treeview j'ai essayer et ca plante le check d'une check boxe du treeview ne fonctionne pas quuququ unn peut'il m'aider Couleur de fond ds Treeview et SStab [ par Vince ] Comment faire pour gérer la couleur de fond dans un treeview, SStab... + généralement comment maîtriser cette @dù!^$ùmùlml de couleur.Grazie mille pou DragDrop entre 2 treeview [ par sambre ] En fait, il s'agit d'alimenter une base de données, dont l'image est dans un premier Treeview, en allant chercher par DragDrop, les données dans un de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.