DataGridView mit Text & Image in iner Row befüllen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Leonalter.

    DataGridView mit Text & Image in iner Row befüllen

    Hallo,

    ich versuche derzeit eine DGV mit einem Bild und Text zu füllen.

    Mein Code bisher:

    VB.NET-Quellcode

    1. Dim row_inhalt As String = "Eintrag1"
    2. DGV.Rows.Add(row_inhalt)



    Nun möchte ich aber in der ersten Spalte ein Bild aus einer Datei hineinladen, und wie gebe ich der Row die Einträge für die anderen Spalten mit?

    Gruß
    Leon
    Um eine Bildspalte zu erhalten muss du die vom Typ DataGridViewImageColumn erstellen. Die ganze Reihe auf einmal befüllen kannst du indem du dem rows.add als Parameter ein Array übergibst und keinen einzelnen Wert, z. B.

    VB.NET-Quellcode

    1. DGV.Rows.Add({"erste Spalte", "zweite Spalte", "dritte Spalte"})
    Anstatt von Strings kannst du natürlich auch Bilder in die entsprechenden Zellen packen.
    Das klappt super, erstmals...

    Während des Ladevorgangs öffne ich 2 Formen, eine Dunkelt alles etwas ab (Topmost, Opacity 90%, dunkler Hintergrund) und eine ladeform davor. Wenn ich diesen Vorgang (siehe Code) jetzt wiederhole, wird nichts geladen, und die 2 Formen schließen sich auch nicht wieder..

    Code:

    VB.NET-Quellcode

    1. 'kategorien_serien = DGV
    2. Private db As New MySqlLib("http://XXX/query.php", True)Private rc As MySqlLib.ResultCollection
    3. kategorien_serien.Rows.Clear()
    4. rc = db.Query("SELECT * FROM serie WHERE kategorie = '" & kategorie & "'")
    5. Dim i As Integer = 0
    6. For Each row As MySqlLib.ResultCollection.ResultItem In rc.Row
    7. 'Bild laden
    8. wc.DownloadFile(rc.Row(i).Column("bildlink"), appdata & "\serien\" & rc.Row(i).Column("name") & ".png")
    9. 'DGV füllen
    10. kategorien_serien.Rows.Add({Image.FromFile(appdata & "\serien\" & rc.Row(i).Column("name") & ".png"), rc.Row(0).Column("name"), rc.Row(0).Column("erscheinungsjahr")})
    11. i += 1
    12. Next
    13. 'DGV noch sortieren...
    14. Dim direction As System.ComponentModel.ListSortDirection
    15. kategorien_serien.Sort(kategorien_serien.Columns("erscheinungsjahr"), direction)
    16. 'Und jetzt die 2 Ladeformen schließen
    17. laden_exit()