Listview

Signaler
Messages postés
22
Date d'inscription
vendredi 7 novembre 2008
Statut
Membre
Dernière intervention
27 février 2013
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,
J'ai un petit souci ,donc j'ai une listeview et je voudrai afficher une liste d'icone dedans
mais le probleme qu'il ne s'affiche pas sous forme d'image il s'affiche que le chemin complet en 'string'alors je butte...

Voici le code que j'utilise :

Public Class icone

Private Sub icone_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim nombre As Integer

For Each file As String In System.IO.Directory.GetFiles(My.Computer.FileSystem.CurrentDirectory & "\Image")
Dim img As System.Drawing.Image = Image.FromFile(file)
nombre += 1

ImageList1.Images.Add(img)

Dim a As New ListViewItem
a.Text = file
a.ImageIndex = nombre


ListView1.Items.Add(a)
Next

End Sub
End Class

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut

Quand tu colles du code, utilise la coloration syntaxique (3eme icone à droite) = plus facile à relire et conserve les indentations.

A ma connaissance, les icones associés aux items d'une ListView doivent être stockés dans une ImageList, et cette ImageList liée à la ListView.
Il va donc te falloir extraire l'icone de chaque fichier rencontré, l'insérer dans une ImageList, puis dire à ton Item que son icone se trouve à l'index X.

Je ne sais pas si ça a changé depuis VB6, mais une ImageList n'est modifiable que si elle n'est pas encore associé à une ListView. Il te faudra donc jongler avec la connexion avant de pouvoir insérer ton image.

Avant de poser ta question, as-tu fait une recherche parmi les codes du site (premier réflexe) ?
Il y a un exemple qui pourrait t'intéresser http://www.vbfrance.com/codes/LISTVIEW-EXPLORER-DOSSIERS-FICHIERS-VB2005_41324.aspx

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonsoir

il faut ajouter
a.SmallImageList = ImageList1
ou
a.LargeImageList = ImageList1



Public Class icone 

Private Sub icone_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
Dim nombre As Integer 
'il suffit de le declarer une fois 
Dim a As New ListViewItem 

For Each file As String In System.IO.Directory.GetFiles(My.Computer.FileSystem.CurrentDirectory & "\Image") 
Dim img As System.Drawing.Image = Image.FromFile(file) 
nombre += 1
a.SmallImageList = ImageList1
ImageList1.Images.Add(img) 
a.Text = file 
a.ImageIndex = nombre 
ListView1.Items.Add(a) 
Next 

End Sub 
End Class