DefaultCellStyle für Column wiederherstellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DefaultCellStyle für Column wiederherstellen

    Hallo,

    im DGV habe ich für eine Column einen DefaultCellStyle definiert.

    In der Column möchte ich in Sonderfällen die Definition des DefaultCellStyle weiter überschreiben mit der Möglichkeit zurückzukehren.
    Da ich da nun recht lange dran gefiddelt habe ist die Frage geht das besser?

    VB.NET-Quellcode

    1. Private Sub DGV_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DGV.RowPrePaint
    2. If 0 <> (e.State And DataGridViewElementStates.Selected) Then Return
    3. If e.RowIndex < 0 Then Return
    4. Dim unwichtigFlag = DGV.Rows(e.RowIndex).Cells(14).Value.ToString.Contains("unwichtig")
    5. If Not unwichtigFlag Then
    6. If DGV(14, e.RowIndex).Style.ForeColor = Color.Black Then DGV(14, e.RowIndex).Style = Nothing
    7. Return
    8. End If
    9. With DGV(14, e.RowIndex).Style
    10. .ForeColor = Color.Black
    11. .Font = defaultDGVFont
    12. End With
    13. End Sub


    Viele Grüße

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Bastel dir einen Cellstyle für den einen Zustand, und einen anderen Style für den anderen Zustand (oder mw. Nothing).
    Je nach Zustand weist du etwas zu. So ungefähr:

    VB.NET-Quellcode

    1. Private Sub DGV_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DGV.RowPrePaint
    2. If 0 <> (e.State And DataGridViewElementStates.Selected) Then Return
    3. If e.RowIndex < 0 Then Return
    4. Dim cll = DGV.Rows(14, e.RowIndex)
    5. Dim unwichtig = cll.Value.ToString.Contains("unwichtig")
    6. cll.Style = if(unwichtig, Me._UnwichtigStyle, Nothing)
    7. End Sub