Datagridview Charger Image [Résolu]

cs_roro69 65 Messages postés vendredi 27 décembre 2002Date d'inscription 9 janvier 2018 Dernière intervention - 20 déc. 2015 à 11:37 - Dernière réponse : cs_roro69 65 Messages postés vendredi 27 décembre 2002Date d'inscription 9 janvier 2018 Dernière intervention
- 20 déc. 2015 à 21:41
Bonjour,

Dans le code ci après je remplis un datagridview depuis une base de donnée; dans la colonne 2 j'ai le chemin complet d'une image ; j'ai crée une troisième colonne datagridview image ; mais lorsque je charge mon projet j'ai la même image sur tout la colonne ; quelle code dois je mettre pour avoir les images en relation avec la colonne du chemin de l'image.
Merci de votre aide et du temps consacré.
Voici le code:

Public Sub DBremplirListe(ByRef LST As DataGridView)
'Requete
Dim cmd = New SQLiteCommand("SELECT Nom,Chemin FROM LivreImage", CON)
'Création du dataset
Dim ds As DataSet = New DataSet()

Dim DR1 As New SQLiteDataAdapter(cmd)
'Chargement
DR1.Fill(ds)
'Remplissage duDatagridview
LST.DataSource = ds.Tables(0).DefaultView
'Création d'un colonne image dans le datagridview
Dim img As New DataGridViewImageColumn()
img.HeaderText = "Image"
img.Name = "img"
LST.Columns.Add(img)
'Récuperation de chemin de l'imahe
Dim inImg As Image = Image.FromFile(LST.Item(1, 1).Value)
img.Image = inImg
img.ImageLayout = DataGridViewImageCellLayout.Stretch
LST.Rows(0).Height = 100
LST.Columns(1).Visible = False
DR1.Dispose()
End Sub

--Merci
Afficher la suite 

Votre réponse

6 réponses

vb95 1636 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 16 août 2018 Dernière intervention - 20 déc. 2015 à 16:13
0
Merci
Bonjour
Tu dis : "dans la colonne 2 j'ai le chemin complet d'une image"
Chaque ligne de cette colonne a un chemin différent pour une image différente ! Si tu ne fais pas intervenir la ligne de cette image dans ton code tu as la même image qui s'affiche sur chaque ligne
vb95 1636 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 16 août 2018 Dernière intervention - 20 déc. 2015 à 16:19
 Dim inImg As Image = Image.FromFile(LST.Item(1, 1).Value)


LST.Item devrait avoir en paramètre la ligne et la colonne
Or là la ligne est toujours la deuxième ligne
cs_roro69 65 Messages postés vendredi 27 décembre 2002Date d'inscription 9 janvier 2018 Dernière intervention - 20 déc. 2015 à 18:02
Bonsoir ;
Merci pour ta réponse ;;
Je viens de comprendre que je donnais à la variable inImg toujours la même valeur ;......
Mais alors la ou je bloque c'est comment récupérer la valeur pour chaque ligne; dois je boucler sur chaque item et appeler Image from file à chaque fois???
Merci pour l'aide apporté
Commenter la réponse de vb95
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 20/12/2015 à 20:00
0
Merci
Bonjour,
Il est de toutes manières selon moi déraisonnable d' "inonder" ton appli de toutes ces images (c'est très gourmand").
Il serait bien plus sage de n'utiliser qu'un seul contrôle d'affichage qui "présenterait" l'image adéquate au survol de la grille, selon la ligne survolée. A faire par exemple dans l'évènement CellMouseMove de ta grille.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
cs_roro69 65 Messages postés vendredi 27 décembre 2002Date d'inscription 9 janvier 2018 Dernière intervention - 20 déc. 2015 à 21:41
Bonsoir Ucfoutu;
Merci pour ta réponses ; je pense que je vais choisir ta solution car il est vrai que arrivé à un certain nombre d'image ; ceci risque de devenir assez rapidement indigeste. Mais je souhaitais simplement pour ma connaissance personnel savoir comment arrivé au résultat demand2.
Encore merci de tes judicieux conseils et de ton aide apporté et temps consacré.
Commenter la réponse de ucfoutu
cs_roro69 65 Messages postés vendredi 27 décembre 2002Date d'inscription 9 janvier 2018 Dernière intervention - 20 déc. 2015 à 21:37
0
Merci
Bonsoir ;
merci à toi vb95 j'ai trouvé la solution avec une boucle ; j'ajoute le code si jamais çà pouvais interessé quelq'un un jour:

Public Sub DBremplirListe(ByRef LST As DataGridView)
'Requete
Dim cmd = New SQLiteCommand("SELECT Nom,Chemin FROM LivreImage", CON)
'Création du dataset
Dim ds As DataSet = New DataSet()

Dim DR1 As New SQLiteDataAdapter(cmd)
'Chargement
DR1.Fill(ds)
'Remplissage duDatagridview
LST.DataSource = ds.Tables(0).DefaultView
'Création d'un colonne image dans le datagridview
Dim img As New DataGridViewImageColumn()
img.HeaderText = "Image"
img.Name = "img"
LST.Columns.Add(img)
'Récuperation de chemin de l'imahe

img.ImageLayout = DataGridViewImageCellLayout.Stretch
For i As Integer = 0 To LST.RowCount - 1

LST.Rows(i).Height = 100
LST.Rows(i).Cells(2).Value = DirectCast(Image.FromFile(LST.Item(1, i).Value), Image)
Next
LST.Columns(1).Visible = False
DR1.Dispose()
End Sub

Encore merci pour le temps consacré et les connaissances partagées
--
Commenter la réponse de cs_roro69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.