ListView OwnerDraw

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Fakiz.

    ListView OwnerDraw

    Hallo,
    wie kann ich mit OwnerDraw die Backcolor der ganzen Zeile ändern?

    Ohne OwnerDraw mache ich es so;

    VB.NET-Quellcode

    1. For Each LWI As ListViewItem In ListView1.Items
    2. If LWI.SubItems(8).Text.Contains("42") Then
    3. LWI.BackColor = Color.White
    4. ElseIf LWI.SubItems(8).Text.Contains("50") Then
    5. LWI.BackColor = Color.Yellow
    6. ElseIf LWI.SubItems(8).Text.Contains("52") Then
    7. LWI.BackColor = Color.LightGreen
    8. End If
    9. Next


    wenn aber OwnerDraw = True ist, ist nur die erste Celle Farbig.
    Bilder
    • 1.png

      4,7 kB, 761×62, 112 mal angesehen
    • 2.png

      4,81 kB, 762×64, 121 mal angesehen
    Wofür brauchst OwnerDraw? Da wird alles durch Events gemacht.

    Ich glaube bei MSDN hast du ein gutes Beispiel....hast hier evtl geschaut?

    Sonst hier
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
    @Pixxxas Hatten wir uns nicht auf ein DataGridView geeinigt?
    In Punkto ListView bekommst Du keine Hilfe mehr von mir. X(
    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!
    wenn aber OwnerDraw = True ist, ist nur die erste Celle Farbig.

    Wenn du das Zeichnen selbst übernehmen willst, dann musst du auch die SubItmes selbst zeichnen. Du musst also die Mehtoden OnDrawColumnHeader, OnDrawItem und OnDrawSubItem überschreiben.