Rubrik: Controls · ListView | VB-Versionen: VB6 | 10.07.02 |
Icons im Listview anzeigen Entgegen der allgemeinen Meinung, lassen sich Icons im ListView nicht nur in der ersten Spalte anzeigen. | ||
Autor: Dieter Otter | Bewertung: | Views: 40.920 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Und hier sind wir wieder: bei einem meiner Lieblings-Controls dem Microsoft ListView Control.
Unser heutiger Tipp zeigt, wie sich entgegen der Meinung vieler User, Icons nicht nur in der ersten Spalte anzeigen lassen, sondern auch in der zweiten und dritten Spalte usw.
Voraussetzung: Die Darstellung erfolgt in der Detailansicht, also View = lvwReport. Weiterhin muss natürlich noch eine ImageList mit den gewünschten Bildsymbolen vorhanden sein.
Um nun z.B. in der 3. Spalte des 5. Eintrags (Zeile) das Bildsymbol 2 anzuzeigen, wird folgender Code benötigt:
ListView1.ListItems(5).ListSubItems.Item(3).ReportIcon = 2
Wie Sie sehen, verfügt jedes ListView-Item über eine eigene ListSubItems-Auflistung, über der man dann das darzustellende Icon festlegen kann.
Im nachfolgenden Beispiel wird das ListView komplett zur Laufzeit initialisiert, d.h. sowohl die Spalten, als auch die einzelnen Einträge werden per VB-Code erzeugt.
' ListView - Header With ListView1 ' Spalten .ColumnHeaders.Add , , "Name", 2000 .ColumnHeaders.Add , , "EMail", 2000 .ColumnHeaders.Add , , "Homepage", 3000 ' Darstellung: Details .View = lvwReport .FullRowSelect = True ' Abbildungsliste zuordnen .SmallIcons = ImageList1 ' 1. Eintrag Set itemX = .ListItems.Add(, , "vb@rchiv", , 1) itemX.SubItems(1) = "info@vbarchiv.de" itemX.ListSubItems.Item(1).ReportIcon = 2 itemX.SubItems(2) = "http://www.vbarchiv.de" itemX.ListSubItems.Item(2).ReportIcon = 3 ' 2. Eintrag Set itemX = .ListItems.Add(, , "NoName", , 1) itemX.SubItems(1) = "-" itemX.ListSubItems.Item(1).ReportIcon = 4 itemX.SubItems(2) = "-" itemX.ListSubItems.Item(2).ReportIcon = 4 ' 3. Eintrag Set itemX = .ListItems.Add(, , "roSoft", , 1) itemX.SubItems(1) = "info@rosoft.de" itemX.ListSubItems.Item(1).ReportIcon = 2 itemX.SubItems(2) = "http://www.rosoft.de" itemX.ListSubItems.Item(2).ReportIcon = 3 ' usw. ... End With