Hallo zusammen und ein Frohes und gesundes neues Jahr.
Ich möchte gerne wenn sich der Wert einer Zelle ändert die gesamte Zeile in eine Farbe einfärben.
In meinem Fall soll die Zeile 2 der Auslöser sein (siehe Bild). Die Zeile 2 beinhaltet nur Zahlen (0 und 3).
Leider bekomme ich keine Fehlermeldung bei meinem Code. Daher weiß ich leider nicht genau wo hier der Fehler liegt.
Was ich bis jetzt probiert habe ist folgendes:
DataGridViewCellStyle cellStyle = new DataGridViewCellStyle();
if (dataGridView2.Rows[2].Cells.ToString().Contains ("0"))
{
cellStyle.BackColor = Color.Red;
}
Schau dir das mal mit dem Debugger an.
Du greifst dort auf die Cells Eigenschaft einer Zeile zu, die alle Zellen der Zeile enthält.
Durch das ToString() erhälst du keinen Fehler, der Rückgabewert von ToString() ist aber vermutlich immer derselbe.
Vielen Dank.
Ich habe es jetzt wie folgt gelöst.
Ich denke aber es gibt hier auch eine elegantere Lösung oder?
foreach (DataGridViewRow row in dataGridView2.Rows)
if (row.Cells[2].Value.ToString() == "0")
row.Cells["KENNZEICHNUNG"].Style.BackColor = Color.Red;
foreach(DataGridViewRow row in dataGridView2.Rows)
if (row.Cells[2].Value.ToString() == "0")
row.Cells["STATUS"].Style.BackColor = Color.Red;
Wenn du mit Scopes (geschweiften Klammern) arbeitest kannst du dir die zweite Schleife sparen.
Und dazu auch das doppelte if, Abfrage ist die gleiche!
Dann kannst du einfach in einer Schleife in einem Rutsch beides setzen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Vielen Dank für eure Antworten. Ihr konntet mir sehr helfen.