Laden...

DataGridview Dynamische Farbe

Erstellt von Bratwurstexe vor 2 Jahren Letzter Beitrag vor 2 Jahren 495 Views
Bratwurstexe Themenstarter:in
24 Beiträge seit 2021
vor 2 Jahren
DataGridview Dynamische Farbe

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;
                

            }

P
441 Beiträge seit 2014
vor 2 Jahren

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.

[Artikel] Debugger: Wie verwende ich den von Visual Studio?

Bratwurstexe Themenstarter:in
24 Beiträge seit 2021
vor 2 Jahren

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;

P
441 Beiträge seit 2014
vor 2 Jahren

Wenn du mit Scopes (geschweiften Klammern) arbeitest kannst du dir die zweite Schleife sparen.

T
2.224 Beiträge seit 2008
vor 2 Jahren

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.

Bratwurstexe Themenstarter:in
24 Beiträge seit 2021
vor 2 Jahren

Vielen Dank für eure Antworten. Ihr konntet mir sehr helfen.