DataGridView cells abhängig vom Wert einfärben

01/02/2008 - 18:18 von Michaela Meier | Report spam
Hi,

Ich möchte mein DataGrid übersichtlicher gestalten und deswegen
bestimmten Werten eine andere Farbe verpassen.
Bisher tue ich dies nach Setzen der Datasource, indem ich alle Reihen in
einer Schleife durchgehe und den Wert kontrolliere.

Könnte man die ForeColor-Property nicht auch direkt an eine Spalte des
verwendeten DataTables binden? ... und wenn ja, wie?

Danke :-)
 

Lesen sie die antworten

#1 Frank Dzaebel
01/02/2008 - 22:50 | Warnen spam
Hallo Michaela,

Ich möchte mein DataGrid übersichtlicher gestalten und deswegen bestimmten
Werten eine andere Farbe verpassen.
Bisher tue ich dies nach Setzen der Datasource, indem ich alle Reihen in
einer Schleife durchgehe und den Wert kontrolliere.

Könnte man die ForeColor-Property nicht auch direkt an eine Spalte des
verwendeten DataTables binden? ... und wenn ja, wie?



Möglichkeiten, Beispiele:

dgv.Columns[2].DefaultCellStyle.ForeColor = Color.Red;

oder etwa mit Bedingungen on the fly:

const int maxWert = 4;
const int spaltenIndex = 3;

void dgv_CellPainting(object sender,
DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == spaltenIndex)
if (e.Value != null && e.Value != DBNull.Value)
if (e.Value.GetType() == typeof(int))
if (((int)e.Value) > maxWert)
e.CellStyle.ForeColor = Color.Red;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen