Utilisation des listviews

Soyez le premier à donner votre avis sur cette source.

Vue 14 194 fois - Téléchargée 2 072 fois

Description

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.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
24
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
17 mars 2010

Salut, me revoilà.

Pour mon problème de colonne, j'ai fait une fonction qui met la colonne à largeur 0 en fonction de certains paramètres sinon elle laisse la largeur normale pour la colonne en question.
Messages postés
2
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
17 mars 2010

Salut, très beau travail bravo.
j'aurais espérer que tu m'aides pour mon problème, au fait, je voudrais juste charger un grand fichier texte dans une listview, j'ai crée un formulaire avec une listview et un bouton, je voudrais pouvoir sélectionner le fichier texte à partir du bouton, que ce fichier soit chargé puis organisé dans la listview. est-ce possible ??
j'utilise visualbasic 2005, pas de C# et cie.
Merci d'avance.
Messages postés
37
Date d'inscription
vendredi 1 février 2002
Statut
Membre
Dernière intervention
26 juillet 2007

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.
Messages postés
24
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
17 mars 2010

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
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
Oui c'est ça ^^
Afficher les 20 commentaires

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.