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
ce qui me pose problème. C'est que je veux remplir un listview2 en cliquant sur un item de listview1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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) & "'"
Au premier clic
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager