ListView füllen, aber wie mit ListViewItem... (ForeColor, Spalten, Columns)

  • VB.NET
  • .NET (FX) 4.0

    ListView füllen, aber wie mit ListViewItem... (ForeColor, Spalten, Columns)

    Hallo,

    so siehts aus und klappt auch sehr gut...

    VB.NET-Quellcode

    1. Dim reader As SQLiteDataReader = Comm.ExecuteReader()
    2. If reader.HasRows Then
    3. Do While reader.Read
    4. With ListView1.Items.Add(reader.GetInt16(0).ToString)
    5. .SubItems.Add(reader.GetString(1))
    6. .SubItems.Add(reader.GetString(2))
    7. .SubItems.Add(reader.GetString(3))
    8. .SubItems.Add(reader.GetString(4))
    9. .SubItems.Add(reader.GetString(5))
    10. .SubItems.Add(reader.GetString(6))
    11. End With
    12. Loop
    13. End If
    14. reader.Close()

    ...damit wird meine Listview, bestehend aus 7 Spalten (Columns) fein säuberlich mit SQL Daten befüllt. Jede Zeile ist ein Row aus dem Select Kommmando.

    Ich schaffe es nun nicht, wenn ich die erste Spalte (Column) - anders Farbig haben möchte.
    Dazu braucht man ListViewItem und diesen Parameter: .UseItemStyleForSubItems = False.

    Bedauerlicherweise kommt da bei mir nur murx raus, bei dem Versuch meine sehr gut funktioniernde Schleife (ohne ListViewItem) umzubauen. Würde mich über hilfreiche Tipps/Codes freuen!

    NACHTRAG:
    okay manchmal sieht man halt den Wald vor lauter Bäumen nicht. Habe mir die Lösung nach einer Tasse Kaffe schliesslich doch selber aus dem Ärmel geschüttelt...

    VB.NET-Quellcode

    1. Do While reader.Read
    2. lvi = New ListViewItem
    3. lvi.UseItemStyleForSubItems = False
    4. lvi.ForeColor = Color.LightGray
    5. lvi.Text = reader.GetInt16(0).ToString
    6. lvi.SubItems.Add(reader.GetString(1)).ForeColor = SystemColors.WindowText
    7. lvi.SubItems.Add(reader.GetString(2)).ForeColor = SystemColors.WindowText
    8. lvi.SubItems.Add(reader.GetString(3)).ForeColor = SystemColors.WindowText
    9. lvi.SubItems.Add(reader.GetString(4)).ForeColor = SystemColors.WindowText
    10. lvi.SubItems.Add(reader.GetString(5)).ForeColor = SystemColors.WindowText
    11. lvi.SubItems.Add(reader.GetString(6)).ForeColor = SystemColors.WindowText
    12. refLV.Items.Add(lvi)
    13. lvi = Nothing
    14. Loop

    ...für alle die ebenfalls eine solche Lösung brauchen, kann der Post aber nicht schaden :whistling:

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Hinti“ ()