DataGridView Zeilen farbig hervorheben

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von maxwell.

    DataGridView Zeilen farbig hervorheben

    Mit folgendem Code markiere ich Zeilen innerhalb eines DGV, bei denen der Termin (Erledigen) abgelaufen ist (Erledigen < NOW):

    VB.NET-Quellcode

    1. Private Sub dgv_formatieren(ByRef dgv As DataGridView)
    2. For Each rw As DataGridViewRow In dgv.Rows
    3. If Not rw.Cells("Erledigen").Value Is DBNull.Value Then
    4. If rw.Cells("Erledigen").Value < Now Then dgv.Rows(rw.Index).DefaultCellStyle.BackColor = Color.Red
    5. Debug.Print(dgvTodo.Rows(rw.Index).DefaultCellStyle.BackColor.ToString)
    6. End If
    7. Next
    8. End Sub


    Über die Debug.Print Zeilen kann ich sehen, dass der Wert entsprechend gesetzt wird.
    Nach der Schleife wird das DGV angezeigt.
    Dann ist keine Zeile farbig markiert. Alle Zeilen haben den Wert: Color [Empty].

    Irgendeine Idee?

    Gruß
    Maxwell
    Probier mal dies:

    VB.NET-Quellcode

    1. Dim style As System.Windows.Forms.DataGridViewCellStyle
    2. If (BEDINGUNG_DIE_ERFUELLT_SEIN_MUSS) Then
    3. style = DataGridView1.Rows.Item(i).Cells.Item(TITEL1).Style
    4. style.ForeColor = Color.Red
    5. style.Font = New Font(MyFont, MyFont.Style Or FontStyle.Bold)
    6. DataGridView1.Rows.Item(i).Cells.Item(TITEL2).Style = style
    7. End If
    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!