begin process at 2012 02 13 06:00:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > UTILISATION DES LISTVIEWS

UTILISATION DES LISTVIEWS


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :11 951 / 1 820

Auteur : Ammoniak

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
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

Les Membres Club peuvent 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

 Sources du même auteur

Source avec Zip JOUER DES MP3Z
Source avec Zip Source avec une capture UTILISATION DES TREEVIEWS

 Sources de la même categorie

Source avec Zip DLL PERSONNALISÉ AVEC ÉVÈNEMENTS ET PROPRIÉTÉS EN VB6. par Number7
Source avec Zip Source .NET (Dotnet) EXEMPLE DU TUTORAIL "CLASSES MÉTIER" par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES LISTES : RANGEMENT (LIST.SORT) ET FILTRAGE (LIST... par kbalist
Source avec Zip EXEMPLE SUR LES MENUS POUR AIDER LES DÉBUTANTS COMME MOI ;-) par viragoloco
LES OPÉRATIONS DE LA LISTE CHAINÉE par smaili

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) LECTEUR DE NEWS RSS COMPLET par Bilou47190
Source avec Zip Source avec une capture [VB] REMPLIR UN TREEVIEW AVEC LES DISQUES DU PC par lermite222
Source avec Zip Source avec une capture Source .NET (Dotnet) TREEVIEW EXTENDED par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE PERMETTANT DE MONTRER LE DRAG AND DROP (GLISSER DÉPL... par christian_grandjean
Source avec Zip AIDE SUR LES TREEVIEW par violent_ken

Commentaires et avis

Commentaire de madman le 19/12/2002 12:26:08

bon travail :)

Commentaire de Ammoniak le 20/12/2002 14:01:02

merci :-)

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

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

Commentaire de popstatic le 25/06/2003 04:10:32

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

Commentaire de Ammoniak le 10/07/2003 13:38:37

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

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.

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?

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]

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

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

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

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

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

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

Commentaire de Duke49 le 27/03/2009 09:47:33

Oui c'est ça ^^

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

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.

Commentaire de heartamon le 17/03/2010 13:33:39

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.

Commentaire de Shion_SEIYA le 17/03/2010 13:48:06

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.

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

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,073 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales