none
Datei Icon Im Listview Anzeigen RRS feed

  • Frage

  • Hallo Ihrs
    Ich bin gerade dabei mich mit dem ListView zu befassen, und befülle dieses mit Dateinamem aus einem Ordner, bis dahin alles Ok. Nun möchte ich aber zu jedem Dateinamen auch das dazugehörige Icon anzeigen. Was mich vor große Probleme stellt. Wenn ich bis jetzt alles Richtig verstanden habe ist dazu eine Imagelist Notwendig, finde das zwar komisch, aber was sein muss, muss eben sein. (-:   Also ich hole mir die Icons mit "Dim IconAusDatei As Icon = Icon.ExtractAssociatedIcon"  das klappt soweit ganz gut und mit "ImageList1.Images.Add(IconAusDatei)" packe ich diese in die Imagelist, auch das geht. Aber wie bekomme ich diese jetzt in mein Listview. Irgendwie ist mir dieses Steuerelement etwas Suspekt vieleich kann mir mal jemand von Euch etwas Licht in das "Dunkle" bringen.

    Zum besseren verständniss ein kleine Beispiel.
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For Each Datei As String In My.Computer.FileSystem.GetFiles("C:/IconTestOrdner")    ' Datei enhält den ganzen Pfad
                Dim Name As String = My.Computer.FileSystem.GetName(Datei)                       ' Name enthält nur den Namen
    
                Dim IconAusDatei As Icon = Icon.ExtractAssociatedIcon(Datei)
                ImageList1.Images.Add(IconAusDatei)
                Dim Item = ListView1.Items.Add(Name)
            Next
            
    
        End Sub
    End Class
    Achs meine ganzen wilden Versuche, wie ich versucht habe die Icons aus der Imagelist in das ListView zu bekommen habe ich im Code  mal weggelassen, wollte mich nicht total Blamieren.  (-: Wie gesagt mit Listview habe ich mich noch nicht befast. Fände es super wenn ihr mit mal ein kleines Beispiel zeigen könntet.


    Gruss  
    Wild-Life78
    Donnerstag, 10. Dezember 2009 13:14

Antworten

  • Hallo,

    Lege für das Item den ImageIndex fest, denn Du beim Add erhälst, alternativ geht auch ein Schlüssel via ImageKey (z. B. der Dateityp)

    siehe Gewusst wie: Anzeigen von Symbolen für das ListView-Steuerelement in Windows Forms

    Gruß Elmar
    • Als Antwort markiert Wild-Life78 Donnerstag, 10. Dezember 2009 14:40
    Donnerstag, 10. Dezember 2009 13:49
    Beantworter
  • Danke Elmar
    Das war der Denkanstoß den ich gebraucht habe, Mhh wer rechnet auch damit das die Lösung so einfach ist?????
    Manchmal sieht man eben den Wald vor lauter Bäumen nicht.

    Ich habe es viel zu komplieziert versucht. Wie ? das behalte ich mal lieber für mich    ..... lach

    Aber Hier nochmal die fertige Lösung, für den fall das Jemand mal ein ähnliches Problem hat.

    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For Each Datei As String In My.Computer.FileSystem.GetFiles("C:/IconTestOrdner")    ' Datei enhält den ganzen Pfad
                Dim Name As String = My.Computer.FileSystem.GetName(Datei)                       ' Name enthält nur den Namen
    
                Dim IconAusDatei As Icon = Icon.ExtractAssociatedIcon(Datei)
                ImageList1.Images.Add(Name, IconAusDatei)
                'MsgBox(Name) war nur zum Test
                ListView1.Items.Add(Name, Name)
          Next
            
    
        End Sub
    End Class
    Lg Ronny
    • Als Antwort markiert Wild-Life78 Donnerstag, 10. Dezember 2009 14:40
    Donnerstag, 10. Dezember 2009 14:36

Alle Antworten

  • Hallo,

    Lege für das Item den ImageIndex fest, denn Du beim Add erhälst, alternativ geht auch ein Schlüssel via ImageKey (z. B. der Dateityp)

    siehe Gewusst wie: Anzeigen von Symbolen für das ListView-Steuerelement in Windows Forms

    Gruß Elmar
    • Als Antwort markiert Wild-Life78 Donnerstag, 10. Dezember 2009 14:40
    Donnerstag, 10. Dezember 2009 13:49
    Beantworter
  • Hallo Elmar
    Das ist ja genau das was ich bisher vergeblich versucht habe, aber ich schaue mir gerade mal das "Gewusst wie Beispiel" an, vieleicht bringt mich das ja weiter. Ich melde mich dann nochmal.

    Gruß
    Ronny
    Donnerstag, 10. Dezember 2009 14:13
  • Danke Elmar
    Das war der Denkanstoß den ich gebraucht habe, Mhh wer rechnet auch damit das die Lösung so einfach ist?????
    Manchmal sieht man eben den Wald vor lauter Bäumen nicht.

    Ich habe es viel zu komplieziert versucht. Wie ? das behalte ich mal lieber für mich    ..... lach

    Aber Hier nochmal die fertige Lösung, für den fall das Jemand mal ein ähnliches Problem hat.

    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For Each Datei As String In My.Computer.FileSystem.GetFiles("C:/IconTestOrdner")    ' Datei enhält den ganzen Pfad
                Dim Name As String = My.Computer.FileSystem.GetName(Datei)                       ' Name enthält nur den Namen
    
                Dim IconAusDatei As Icon = Icon.ExtractAssociatedIcon(Datei)
                ImageList1.Images.Add(Name, IconAusDatei)
                'MsgBox(Name) war nur zum Test
                ListView1.Items.Add(Name, Name)
          Next
            
    
        End Sub
    End Class
    Lg Ronny
    • Als Antwort markiert Wild-Life78 Donnerstag, 10. Dezember 2009 14:40
    Donnerstag, 10. Dezember 2009 14:36