Bild in ListView-Spalte anzeigen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von CodeRed.

    Bild in ListView-Spalte anzeigen

    Hallo liebes Forum,

    Folgende Schwierigkeit hat sich ergeben: Ich habe auf einer Form eine ListView mit View.Details und 7 Spalten. Die 1. Splate ist für CheckBoxes, die 2. Für ein anzuzeigendes Bild und die Restlichen für normalen Text. Alles funktioniert einwandfrei bis auf das Bild in der zweiten Spalte. Dieses Bild ist frei vom Benutzer wählbar und wird im vorangegangenen Code als ein Bitmap erstellt (bmpTemp). Hier mein Versuch:

    VB.NET-Quellcode

    1. Dim imglist As New ImageList
    2. Dim ImageListEintrag As New Bitmap(bmpTemp, 300, 300)
    3. Dim str() As String = {"", "", txt1.Text, txt2.text, txt3.text, txt4.Text, txt5.Text}
    4. Dim lvi As New ListViewItem(str)
    5. imglist.Images.Add(ImageListEintrag)
    6. ListView1.LargeImageList = imglist
    7. lvi.Checked = True
    8. ListView1.Items.Add(lvi)


    Ich habe keinen blassen Schimmer, wie wie ich jetzt das Bild in der 2. Spalte anzeigen lassen kann...Hat da jemand ne Idee? :whistling:

    LG CodeRed
    Umfangreicher Converter im Browser: CloudConvert
    Temporäre e-Mail: temp-mail
    Text-Übersetzter: DeepL
    Kostenloser Webspace: bplaced
    @CodeRed Nimm ein DataGridView. Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Danke, habe mir das zu Herzen genommen :) Ich habe jetzt eine DataGridView, jedoch wird die Image-Spalte an letzter Position angezeigt, anstatt an der Ersten... Was mach ich falsch?

    VB.NET-Quellcode

    1. Dim img As New DataGridViewImageColumn()
    2. .ColumnCount = 6
    3. img.Image = bmpTemp
    4. img.ImageLayout = DataGridViewImageCellLayout.Zoom
    5. .Columns.Add(img)
    6. img.HeaderText = "Image"
    7. img.Name = "img"
    8. .Columns(1).Name = "Name"
    9. .Columns(2).Name = "Shop"
    10. .Columns(3).Name = "Size"
    11. .Columns(4).Name = "Color"
    12. .Columns(5).Name = "Price"
    13. Dim row As String() = New String() {"", txt1.Text, shop, txt2.Text, txt3.Text, txt4.Text}
    14. .Rows.Add(row)


    Ist vielleicht ne dumme Frage, jedoch komme ich einfach nicht grauf ?(

    LG CodeRed
    Umfangreicher Converter im Browser: CloudConvert
    Temporäre e-Mail: temp-mail
    Text-Übersetzter: DeepL
    Kostenloser Webspace: bplaced

    CodeRed schrieb:

    Was mach ich falsch?
    Leg die Spalten im Designer an, achte auf die Art der Spalten.
    Bilder
    • Spalten.png

      22,63 kB, 443×416, 189 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Danke für den Tipp, wie empfohlen habe ich jetzt die Spalten im Designer angelegt. Aber wie weise ich nun der DataGridImageColumn ein Bild zu? So was funktionniert ja leider nicht: :whistling:

    VB.NET-Quellcode

    1. Dim row As String() = New String() {bmpTemp, txt1.Text, txt2.Text, txt3.Text, txt4.Text, txt5.Text} 'Bild in 1.Spalte der Zeile
    2. list.Rows.Add(row)


    Sorry wenn ich mich ein wenig blöd anstelle, habe da aber wirklich keine Ahnung...

    LG CodeRed
    Umfangreicher Converter im Browser: CloudConvert
    Temporäre e-Mail: temp-mail
    Text-Übersetzter: DeepL
    Kostenloser Webspace: bplaced

    CodeRed schrieb:

    Aber wie weise ich
    So:

    VB.NET-Quellcode

    1. DataGridView1.Rows.Add()
    2. Dim bmp = New Bitmap("C:\Temp\TestImage.png")
    3. DataGridView1.Item(0, 0).Value = bmp
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!