Laden...

DGV dynamisches Imagecolumn

Erstellt von erzincan24 vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.046 Views
E
erzincan24 Themenstarter:in
17 Beiträge seit 2015
vor 8 Jahren
DGV dynamisches Imagecolumn

Hi Community,

ich kenne mich ehrlich gesagt null mit Datagridview Imagecolumns aus und habe auch nichts sinnvolles gefunden.

Ich habe eine Datagridview mit zwei Spalten eine spalte z.B namen an der stelle [0] und eine Imagecolumn an der stelle [1] und nun möchte ich durch eine Schleife mit Bezug auf die Namen das jeweilige Bild anzeigen lassen. Die Bilder die ich habe sind lokal angelegt.

Habe einiges vergebens versucht, bekomm es nicht gebacken -_- bei mir erscheint immer das selbe bild in der Spalte 😕 (mit einer ' for each' schleife nicht hinbekommen 😕)

imgcol.Image = Image.FromFile(@"Dateipfad.jpg") 
imgcol.ImageLayout = DataGridViewImageCellLayout.Stretch; // Bild passt sich der Zelle an 
Object [] row = new Object[] {"Name", true, imgcol };

Bedanke mich im voraus

Grüße
E24

16.807 Beiträge seit 2008
vor 8 Jahren

Der Pfad vom Bild ist in dem Snippet hier hart eingebunden.
Ergo wird nur das Bild genommen.

Was genau ist nun das Problem? 🤔
Wo hängts?

E
erzincan24 Themenstarter:in
17 Beiträge seit 2015
vor 8 Jahren

Ja ich weiss, habe die schleife nicht sinnvoll hinbekommen gehabt und deshalb raus gelöscht, der code sollte nur zeigen das ich das Bild eingebunden habe es sollen ja mind. 10 Bilder eingebunden werden und durch eine Schleife soll das entpsrechende Bild in der Imagecolumn angezeigt werden.

Bin nur ratlos wie ehrlich gesagt 😕 vlt kann mir jemand eine schleife für ein Bild aufzeigen.

danke im voraus

gruß

F
10.010 Beiträge seit 2004
vor 8 Jahren

Solange du immer wieder versuchst Daten in UI Elemente hineinzufrickeln wirst du niemals vorankommen.

Erstelle dir eine Klasse zb. PictureRow


public class PictureRow
{
  public string FileName{get;set;}
  public Image Picture{get;set;}
}

Mache eine List<PictureRow>, erzeuge die entsprechenden Objekte ( wie du das Bild da reinkommst sollte ja offensichtlich sein ) und binde die Liste an DGV.DataSource.
Done.

3.003 Beiträge seit 2006
vor 8 Jahren

DataGridViewImageColumn beschreibt eine gesamte Spalte. Wenn für einzelne Zellen in dieser Spalte verschiedene Bilder hinterlegt werden sollen, ist DataGridViewImageCell dein Freund. In den Links sind Beispiele, wie das ganze zu organisieren ist.

LaTino
Edit: am einfachsten wie immer, und wie von FZelle geschrieben, per Databinding. Sollte das aus Gründen irgendwelcher Art nicht gewünscht sein - siehe oben.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

E
erzincan24 Themenstarter:in
17 Beiträge seit 2015
vor 8 Jahren

Thx a lot für die raschen Antworten und Tipps 👍 👍 👍

gruß
E24