Listview

odeesey Messages postés 21 Date d'inscription vendredi 7 novembre 2008 Statut Membre Dernière intervention 27 février 2013 - 14 janv. 2012 à 15:43
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 14 janv. 2012 à 19:06
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 janv. 2012 à 16:08
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)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
14 janv. 2012 à 19:06
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
0
Rejoignez-nous