Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DataGridview Dynamische Farbe
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 14

Themenstarter:

DataGridview Dynamische Farbe

beantworten | zitieren | melden

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;
                

            }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Bratwurstexe am .
Attachments
private Nachricht | Beiträge des Benutzers
Papst
myCSharp.de - Experte



Dabei seit:
Beiträge: 420
Herkunft: Kassel

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

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;
private Nachricht | Beiträge des Benutzers
Papst
myCSharp.de - Experte



Dabei seit:
Beiträge: 420
Herkunft: Kassel

beantworten | zitieren | melden

Wenn du mit Scopes (geschweiften Klammern) arbeitest kannst du dir die zweite Schleife sparen.
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1.965
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Bratwurstexe
myCSharp.de - Member

Avatar #DjnCTOgpyUQc0tznMTdl.png


Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für eure Antworten. Ihr konntet mir sehr helfen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Bratwurstexe am .
private Nachricht | Beiträge des Benutzers