cs_roro69
Messages postés70Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention29 septembre 2018
-
20 déc. 2015 à 11:37
cs_roro69
Messages postés70Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention29 septembre 2018
-
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
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 20 déc. 2015 à 16:13
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
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 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
Messages postés70Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention29 septembre 2018 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é
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.
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é.
cs_roro69
Messages postés70Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention29 septembre 2018 20 déc. 2015 à 21:37
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
--
20 déc. 2015 à 16:19
LST.Item devrait avoir en paramètre la ligne et la colonne
Or là la ligne est toujours la deuxième ligne
20 déc. 2015 à 18:02
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é