Datagridview farbige Rows Datenabhängig

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Vatter.

    Guckst Du
    DataGridView.CellFormatting-Ereignis

    Signatur:

    VB.NET-Quellcode

    1. Private Sub DataGridView_CellFormatting(sender As System.Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView.CellFormatting
    2. End Sub

    Über die DataGridViewCellFormattingEventArgs kommst Du an an eine Datagridview-Zelle. Mit der prüfst Du Deine Daten und kannst dann entsprechend einfärben. Das wiederholst Du dann solange, bis Deine ganze Zeile die gewünschte Farbe hat.

    us4711 schrieb:

    Das wiederholst Du dann solange, bis Deine ganze Zeile die gewünschte Farbe hat.
    ... Oder nimmst das RowPostPaint-Event, lässt dir das Feld ausgeben, wertest aus und änderst die Farbe der gesamten Row in einem Rutsch.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Vllt hilft dir mein Beispiel

    VB.NET-Quellcode

    1. Gridview Zellwert auslesen und Zelleigenschaften ändern
    2. Dim Anzahl As Long
    3. Dim Zeile As Integer = 0
    4. Dim Spalte As Integer = 1
    5. 'Anzahl der im Gridview vorhandenen Zeilen
    6. Anzahl = gridALL.RowCount
    7. Do
    8. Dim dgvc_Stil As New DataGridViewCellStyle()
    9. Dim Cellwert As Object
    10. Dim Cellfarbe As Color
    11. dgvc_Stil = gridALL.Rows(Zeile).Cells(Spalte).Style
    12. Cellfarbe = dgvc_Stil.BackColor
    13. 'Zellenwert auslesen
    14. Cellwert = gridALL.Rows(Zeile).Cells(Spalte).Value
    15. If Cellwert = "Sehr hoch" Then
    16. Cellfarbe = Color.OrangeRed
    17. ElseIf Cellwert = "Normal" Then
    18. Cellfarbe = Color.LightGreen
    19. End If
    20. 'Zellfarbe auf ganze Reihe übertragen (Zellweise 1-4)
    21. gridALL.Rows(Zeile).Cells(1).Style.BackColor = Cellfarbe
    22. gridALL.Rows(Zeile).Cells(2).Style.BackColor = Cellfarbe
    23. gridALL.Rows(Zeile).Cells(3).Style.BackColor = Cellfarbe
    24. gridALL.Rows(Zeile).Cells(4).Style.BackColor = Cellfarbe
    25. 'Zeile um 1 erweitern
    26. Zeile = Zeile + 1
    27. 'Zellen werden solange bearbeitet, bis Anzahl der Zellen mit bearbeiteten Zeilenanzahl
    28. übereinstimmt
    29. Loop Until Zeile = Anzahl

    ErfinderDesRades schrieb:

    denn die Änderung des CellStyles führt wiederum zu einem Zeichen-Vorgang
    ...dafür gibt es die RowDefaultCellStyle-Eigenschaft. Ich lege mir in der Regel 2 (oder auch mehr) CellStyle-Instanzen bereit und weise die jeweils gewünschte dem RowDefaultCellStyle in der ausgewerteten Zeile zu. Damit habe ich dann auch z.B. in den Optionen meiner Anwendung zentaralen Zugriff auf solche Style-Anpassngen für den Benutzer.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: