Ajouter des images un listView
Bonjour
J'essaye d'arriver à ceci:
J'ai un dossier d'images "categories". chaque image dans ce dossier représente une catégorie d'article dont les images sont stockées dans un dossier "photos".
J'arrive a remplir le listview1 par les images du dossier "categorie" avec ce code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Private Sub commandform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim dbconnection As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source= mabase.mdb")
dbconnection.Open()
Dim ds As New DataSet
Dim sqladap As New OleDbDataAdapter("SELECT * FROM categorie", dbconnection)
sqladap.Fill(ds)
ListView1.LargeImageList = ImageList1
ListView1.SmallImageList = ImageList1
ListView1.View = View.Details
ListView1.FullRowSelect = True
ListView1.Columns.Add("Catégorie", 250)
ListView1.Font = New Font(ListView1.Font.FontFamily, 14, ListView1.Font.Style)
ListView1.BackColor = System.Drawing.Color.FromArgb(250, 250, 250)
Dim i As Integer
Dim lst As ListViewItem
For i = 0 To ds.Tables(0).Rows.Count - 1
If Dir(My.Application.Info.DirectoryPath & "\photos\Categories\" & ds.Tables(0).Rows(i)(0) & ".jpg") <> vbNullString Then
ImageList1.Images.Add(System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & "\Categories\" & ds.Tables(0).Rows(i)(0) & ".jpg"))
Else
ImageList1.Images.Add(System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & "\photos\Categories\logo.jpg"))
End If
lst = ListView1.Items.Add(ds.Tables(0).Rows(i)(1), i)
Next
Catch ex As Exception
End Try
End Sub |
ce qui me pose problème. C'est que je veux remplir un listview2 en cliquant sur un item de listview1
je sélectionne une catégorie sur listview1 et obtenir ses articles sur listview2.voici le code que j'utilise et qui ne donne rien sinon une erreur.
Code:
1 2 3 4 5 6
| Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
Dim item As Integer = ListView1.SelectedIndices(0)
Dim dbconnection As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source= login.mdb")
dbconnection.Open()
'>>>>>>>>>> ICI L'ERREUR <<<<<<<<<<
sql = "Select * from menu where categorie='" & Trim(ListView1.SelectedItems.Item(0).Text) & "'" |
ici Lorsque je sélectionne une seconde catégorie j'ai l'erreur suivante :: InvalidArgument=La valeur '0' n'est pas valide pour 'index
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Dim ds As New DataSet
Dim sqladap As New OleDbDataAdapter(sql, dbconnection)
sqladap.Fill(ds)
' ListView2.Clear()
ListView2.LargeImageList = ImageList2
ListView2.SmallImageList = ImageList2
ListView2.View = View.Details
ListView2.Font = New Font(ListView2.Font.FontFamily, 14, ListView2.Font.Style)
Dim lst As ListViewItem
Dim i As Integer
For i = 0 To ds.Tables(0).Rows.Count - 1
If Dir(My.Application.Info.DirectoryPath & "\photos\" & ds.Tables(0).Rows(i)(0) & ".jpg") <> vbNullString Then
ImageList2.Images.Add(System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & "\photos\" & ds.Tables(0).Rows(i)(0) & ".jpg"))
Else
ImageList2.Images.Add(System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & "\photos\logo.jpg"))
End If
lst = ListView2.Items.Add(ds.Tables(0).Rows(i)(1), i)
Next
End Sub
End Class |
Au premier clic
le code s’exécute mais aucune image ne s'affiche.
Je suis désolé si j'arrive pas a bien présenter la question.c'est la première fois .merci de m'aider.