DataGridView ZellInhalt bei bestimmter Bedingung einfärben

Alfred_

Erfahrenes Mitglied
Hi,
ich lese über ein DataTable ein Tabelle ein
Code:
      Me.DGV1.Columns("wert").DefaultCellStyle.Format = "F2"
      Me.DGV1.Columns("wert").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
. Sowei so gut.
Nun möchte ich aber den TabellenInhalt je nach Bedingung rot einfärben (Inhalt < 0).
Mit
Code:
      Me.DGV1.Columns("wert").DefaultCellStyle.ForeColor = Color.Red
wird die gesammte Spalte eingefärbt. Ich will jedoch nur jene Zellen, die ein Minus vor der Zahl haben, rot einfärben.
Die Spalte gibt einen Float-Wert wider.
Wie löse ich dieses Problem?
Vorerst schon danke.

Folgende Lösung:
Aufruf:
Code:
    AddHandler DGV1.CellFormatting, New DataGridViewCellFormattingEventHandler(AddressOf DGV1_CellFormatting)
Code:
  Private Sub DGV1_CellFormatting(ByVal sender As Object, _
  ByVal e As DataGridViewCellFormattingEventArgs)
    If DGV1.Columns(e.ColumnIndex).Name = "wert" Then
      If e.RowIndex < DGV1.Rows.Count Then
        'suchwert gefunden
        If e.Value.ToString.IndexOf(Me.TextBox1.Text) >= 0 Then
          e.CellStyle.ForeColor = Color.Black
        Else
          e.CellStyle.ForeColor = Color.Red
        End If
      End If
    End If
  End Sub
Gefunden in einem Buch von Doberenz.
Grüße
 
Zuletzt bearbeitet:
Tut leid, ich habe die "Lösung" ins Netz gestellt, ohne sie zu testen.:-(
DGV löst eine Exception aus, wenn ich eine Spalte anklicke. Sollte natürlich nicht sein.
...ich arbeite an der Lösung
 
Zurück