listview mit Icons

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von lris08.

    listview mit Icons

    Hallo,

    kann mir das mal einer erklären, wie ich es schaffen würde in einem Listview Icon angezeigt zu bekommen ?

    Das große ABER: in dem Listview werden Dokumente aufgelistet, eine eigene Spalte gibt sogar aus ob es eine .docx oder andere Datei ist...

    Nun würde ich gerne haben wollen, daß in der ersten Spalte von Listview ein Icon angezeigt wird, ABER ;) unterschiedliche Icons - abhängig von der Dateiendung.

    Geht sowas überhaupt?
    du fügst deinem Formular eine ImageList hinzu und fügst in diese deine Bilder ein...bei der ListView suchst du jetzt nach den entsprechenden Eigenschaften, welche das wort ImageList enthalten, also StatusImageList usw...(für was welches zuständig ist, kannst du selbst herrausfinden und deinen Wünschen entsprechend anpassen), dort wählst du dann die zuvor hinzugefügte ImageList aus, jedem Item, welches du nun hinzufügst musst du entweder einen ImageIndex(einen Zahlenwert, welcher angibt, das wievielte Bild genommen werden sol, beginnend bei 0...) oder den ImageKey(ein String, welcher aus den Dateinamen generiert wurde...)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    so könnte das aussehen ???

    VB.NET-Quellcode

    1. Do While reader.Read()
    2. Dim LW As New ListViewItem
    3. If reader("DocArt").ToString() = ".pdf" Then
    4. LW.ImageIndex = 1
    5. End If
    6. Dim LItem As ListViewItem = ListView1.Items.Add(LW)
    7. LItem.SubItems.Add(reader("DocNr").ToString())


    jetzt bleibt aber mein Listview wieder ganz leer...
    denkfehler?

    einmal für LW und einmal für LItem ?

    bin wohl total daneben oder?

    aber im moment weis i ned wie ich es sonst anstellen soll - suche schon die ganzezeit über google nach erklärungen und einem beispielcode.

    Dachte so gehts:

    VB.NET-Quellcode

    1. Dim LW As New ListViewItem
    2. If reader("DocArt").ToString() = ".pdf" Then
    3. LW.ImageIndex = 0
    4. ElseIf reader("DocArt").ToString() = ".docx" Then
    5. LW.ImageIndex = 1
    6. End If
    Mach es am besten so

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. With Me.ListView1.Items.Add("Test")
    4. .ImageIndex = 0
    5. ' ...
    6. End With
    7. End Sub
    8. End Class
    Wichtig ist, das du dem Listview vorher die ImageList zuordnest.
    Wenn du die Sicht auf Detail hast, kannst du die SmallImagelist nehmen:


    Kleines Beispiel wie man dem ersten Item einer Listview ein Bild zuordnet (in dem Fall das Icon der Form):

    VB.NET-Quellcode

    1. Dim l As New ImageList
    2. l.Images.Add("image", Me.Icon.ToBitmap)
    3. ListView1.SmallImageList = l 'hier wird die Imagelist an das ListviewControl "gebunden"
    4. ListView1.Items(0).ImageIndex = 0
    5. ListView1.View = View.Details
    Das ist meine Signatur und sie wird wunderbar sein!
    sorry, aber den code verstehe ich nun überhaupt nicht...

    und ehrlich gesagt verstehe ich den Zusammenhang diesesmal überhaupt nicht - von listview und ImageList...
    auch das mit den Abhöngigkeiten, dass ein bestimmtes icon angezeigt werden soll - je nach dateiendung .docx oder was auch immer
    Das war nur ein Beispiel. Hier ist nichts von Abhängigkeiten oder ähnlichem berücksichtigt. Es sollten nur verdeutlichen, wie du eine ImageList erzeugst, dieser (in meinem Fall eins) Bilder hinzufügst und wie du diese List dann deinem ListViewControl zuordnest:

    VB.NET-Quellcode

    1. Dim l As New ImageList 'eine Neue Imagelist wird instanziert
    2. l.Images.Add("image", Me.Icon.ToBitmap) ' Ein Bild wird hinzugefügt, der Name ist Frei wählbar (mein Beispiel ist halt "image", kann auch "Bild2" sein)
    3. ListView1.SmallImageList = l 'hier wird die Imagelist an das ListviewControl "gebunden"
    4. 'Listview hat eine SmallImage, - LargeImage -und StateImageList. Wie Jvbsl schon erwähnte sind diese für verschiedene Zwecke
    5. Die Large und Small ImageList ist die Liste der Bilder, die zB angezeigt wird, wenn man die Eigenschaft VIEW auf SmallICon Oder LargeIcon stellt
    6. ' Die andere glaub dafür, was angezeigt wird wenn es angewählt ist (weiß ich aber nicht genau, musst halt nachlesen
    7. ListView1.Items(0).ImageIndex = 0 'Das Erste Item meiner Liste (Es wird vorrausgesetzt die listview hat 1 Item) bekommt nun das 1.Bild aus der Imagelist zugeordnet (Imagelist ist wie List oder Array, der erste Index IST 0)
    8. ListView1.View = View.Details
    9. 'Die Sicht wird auf Detail gestellt, nun wird das Bild ganz vorne angezeigt
    Das ist meine Signatur und sie wird wunderbar sein!