IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ajouter des images un listView [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut 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 : 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
    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 : 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) & "'"
    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
    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.

  2. #2
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut
    Bonjour
    J'y suis arrivé et voici comment je m'y suis pris.
    J'ai changé de l’événement " SelectedIndexChanged " à "CLICK".

    Bref voici le code
    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
     Private Sub ListView1_Click(sender As Object, e As EventArgs) Handles ListView1.Click
            Dim dbconnection As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source= mabase.mdb")
            dbconnection.Open()
            sql = "Select * from  menu where categorie='" & Trim(ListView1.SelectedItems.Item(0).Text) & "'"
     
     
            Dim ds As New DataSet
     
            Dim sqladap As New OleDbDataAdapter(sql, dbconnection)
     
            sqladap.Fill(ds)
     
     
            ListView2.LargeImageList = ImageList2
            '  ListView2.SmallImageList = ImageList2
     
     
            ' ListView2.View = View.Details
            ListView2.Font = New Font(ListView2.Font.FontFamily, 14, ListView2.Font.Style)
            Me.ListView2.Clear()
            ImageList2.Images.Clear()
            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).ToString, i)
            Next
        End Sub

  3. #3
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Pourquoi ne pas utiliser :
    Itemselectionchanged

    Ainsi tu récupères le listviewitem qui a été sélectionné dans :

    e.item

    ++

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut re
    Bonsoir
    Tout simplement parce que je ne distingue pas la différence entre événements qu'une fois exécutés.Je me suis auto formé grâce aux forums et livres.Et il y a tellement de lacunes.
    Je vais tester mon dernier code dans Itemselectionchanged et je te répondrai.Merci

  5. #5
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    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
     
    Private Sub ListView1_Click(sender As Object, e As ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged
    If e.IsSelected Then
            Dim dbconnection As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source= mabase.mdb")
            dbconnection.Open()
            sql = "Select * from  menu where categorie='" & Trim(e.item.Text) & "'"
     
     
            Dim ds As New DataSet
     
            Dim sqladap As New OleDbDataAdapter(sql, dbconnection)
     
            sqladap.Fill(ds)
     
     
            ListView2.LargeImageList = ImageList2
            '  ListView2.SmallImageList = ImageList2
     
     
            ' ListView2.View = View.Details
            ListView2.Font = New Font(ListView2.Font.FontFamily, 14, ListView2.Font.Style)
            Me.ListView2.Clear()
            ImageList2.Images.Clear()
            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).ToString, i)
            Next
        End Sub
    Else
        Msgbox("Pas d'Item sélectionné !")
    End If
    ++

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut re
    bonjour :
    Le code marche.J'obtiens le résultat escompté.merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter des images dans un fichier.txt
    Par duaru157 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 18/01/2009, 16h35
  2. Ajouter des images dans le corps d'un email
    Par developeuz93 dans le forum ASP
    Réponses: 17
    Dernier message: 23/12/2008, 17h02
  3. [JTextarea] comment ajouter des images ?
    Par imenmannou dans le forum Composants
    Réponses: 2
    Dernier message: 13/05/2008, 14h48
  4. Ajouter des images à mon application
    Par comrad85 dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/03/2008, 17h47
  5. [Swing] Ajouter des images dans JLabel
    Par stragaman dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/04/2007, 23h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo