Affichage image dans listview

trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 - Modifié le 8 juil. 2022 à 20:04
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 11 juil. 2022 à 11:41

Bonjour,

J'arrive a afficher dans une picturebox pas de souci.

Maintenant je voudrais incérer une image dans une listview colonne 0 par exemple et afficher l'image qui a le même nom que la colonne1

If items(0) <> "" Then
    If IO.File.Exists("T:\images\" & items(0) & ".jpg") Then

item(1)=.......

9 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 8 juil. 2022 à 17:33

Bonjour

Pour insérer du code avec les balises de code il faut :

1) Placer le curseur où vous désirez que le code soit dans le message .

2) Cliquez dans l'icône avant Normal ( voir image ci-dessous) : il est affiché "Insérez un extrait de code"

3) Sélectionnez le langage avec la listbox en haut à gauche .

4) Tapez votre code ou en faire un copier-coller depuis le code original .

5) Faire Ok 

Le code formaté avec les balises de code s'insérera à la position du curseur défini au point 1)


1
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 8 juil. 2022 à 13:26

Impossible d'afficher, j'ai créé une ImageList avec la paramètre SmallImageList.

If items(0) <> "" Then
    If IO.File.Exists("C:\Images\" & items(0) & ".jpg") Then
        ImageList1.Images.Add(System.Drawing.Image.FromFile("C:\Images\" & items(0) & ".jpg"))
    End If
End If
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 11 juil. 2022 à 08:11

J'ai réussi a afficher l'image mais c'est la même pour chaque ligne .

(Pour info on peut plus mettre en forme les codes)

Do
                            If sheetXls.Range("B" & var1).Value <> "" Then
                                Dim items As String() = New String(6) {} 

                                items(0) = sheetXls.Range("A" & var1).Value
                                '------------------------------------
                                MsgBox("C:\IMAGES\" & items(0) & ".jpg")
                                lvview.SmallImageList = imgList
                                imgList.Images.Add("Picture", Image.FromFile("C:\Images\" & items(0) & ".jpg"))

                                '-------------------------------

                                items(1) = sheetXls.Range("B" & var1).Value
                                items(2) = sheetXls.Range("C" & var1).Value
                                items(3) = sheetXls.Range("D" & var1).Value
                                items(4) = sheetXls.Range("E" & var1).Value

                                Dim index As Integer = 0
                                Dim lvi As New ListViewItem(items)
                                '--------------
                                lvi.ImageIndex = index
                                '-----------------------
                                lvview.Items.Add(lvi)

                                var1 = var1 + 1
                            End If
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 8 juil. 2022 à 17:35

Avec ce code on insère une image mais je voudrais créer une nouvelle colonne et mettre juste une image

0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024
8 juil. 2022 à 17:55

Bonjour

A ma connaissance dans une Listview en mode Détails avec Visual Studio on ne peut afficher qu'une petite image en forme d'icône que dans la première colonne de la Listview avec le contrôle ImageList .

De plus cette image se place toujours avant le texte de la première colonne .

Sinon il faut passer par des contrôles Listview autres que ceux de Visual Studio .

0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
11 juil. 2022 à 07:33

Merci comment puis je faire si je ne trouve pas d'image:

ligne 1 il trouve l'image et l'affiche

ligne 2 pas d'image affiche rien

ligne 3 trouve l'image et me l'affiche

Avec mon code il m'affiche une image a la ligne 2

Merci

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
11 juil. 2022 à 08:19

Bonjour trucss

comme tu l'as constaté l'éditeur de texte a changé et contrairement à avant, les indentations sont conservée.

C'est mieux que rien, mais ça reste difficilement lisible pour ceux qui pourraient avoir envie de t'aider.

Merci donc de faire l'effort d'utiliser le nouveau système de coloration syntaxique https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Concernant ton problème d'image dans une listview, tu ne vérifies nulle part dans le code présenté si l'image existe sur le disque.


0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
11 juil. 2022 à 08:20

Bonjour à VB95 au passage 

0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
11 juil. 2022 à 08:32

 Effectivement, j'ai bien un controle de l'existence d'une image.

Bravo pour la forme c'est mieux qu'avant

If sheetXls.Range("B" & var1).Value <> "" Then
                                Dim items As String() = New String(6) {}

                                items(0) = sheetXls.Range("A" & var1).Value
                                '------------------------------------                               

                                If items(0) <> "" Then
                                    If IO.File.Exists("C:\Images\" & items(0) & ".jpg") Then
                                        imgList.Images.Add("Picture", Image.FromFile("C:\Images\" & items(0) & ".jpg"))
                                    Else
                                    End If
                                End If

                                '-------------------------------

                                items(1) = sheetXls.Range("B" & var1).Value
                                items(2) = sheetXls.Range("C" & var1).Value
                                items(3) = sheetXls.Range("D" & var1).Value
                                items(4) = sheetXls.Range("E" & var1).Value


                                Dim lvi As New ListViewItem(items)
                                '------------                             
                                lvi.ImageIndex = index
                                '-----------------------
                                lvview.Items.Add(lvi)

                                var1 = var1 + 1

                                index = index + 1

                            End If
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
11 juil. 2022 à 09:24

Ha dans le message 3 ça n'y était pas.

Et malgré ça tu as toujours une image, même quand ça ne devrait pas?


0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 11 juil. 2022 à 09:26

C'est un peu archaique mais ça fonctionne.

J'utilise la variable var2 pour modifier l'indexage.

Si pas d'image alors rien dans la ligne ......

var2 = 0
                            If sheetXls.Range("B" & var1).Value <> "" Then
                                Dim items As String() = New String(6) {} 

                                items(0) = sheetXls.Range("A" & var1).Value
                                '------------------------------------                               

                                If items(0) <> "" Then
                                    If IO.File.Exists("c:\Images sens profils\" & items(0) & ".jpg") Then
                                        imgList.Images.Add("Picture", Image.FromFile("c:\Images\" & items(0) & ".jpg"))
                                    Else
                                        var2 = 1
                                        index = -1
                                    End If
                                End If

                                '-------------------------------

                                items(1) = sheetXls.Range("B" & var1).Value
                                items(2) = sheetXls.Range("C" & var1).Value
                                items(3) = sheetXls.Range("D" & var1).Value
                                items(4) = sheetXls.Range("E" & var1).Value


                                Dim lvi As New ListViewItem(items)
                                '--------------                       
                                lvi.ImageIndex = index
                                '-----------------------
                                ltview.Items.Add(lvi)

                                var1 = var1 + 1
                                If var2 = 1 Then
                                    index = index + 2
                                Else
                                    index = index + 1
                                End If
                            End If
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
11 juil. 2022 à 11:41

Ok.

Après, il me semble te l'avoir déjà dit, winform n'est pas simple à personnaliser.

WPF, c'est du bonheur, mais il faut absolument coder proprement objet, et force est de constater que l'objet c'est pas encore acquis.


0
Rejoignez-nous