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 / Exemple :
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.