DataGrid Hintergrundfarbe einzelner Zeilen

Swebble

Mitglied
Hallo zusammen,

ich würde gerne bestimmte Zeilen eines DataGrids farbig kennzeichnen. Leider sind das nicht z.B. alle ungeraden, sondern beliebige.

Weiß jemand wie das geht?

Danke

Swebble
 
Tja... da muss ich dich wohl enttäuschen. Bisher habe ich noch keine möglichkeit gefunden einzelne Zeilen zu Formatieren!

Naja vielleicht findet oder weiss irgendwer wie das . Ich jedenfalls habe es aufgegeben dannach zu suchen.

Tipp: Ein alternative wäre das ListView in der Detailansicht. Das muss jedoch mühselig programmiert werden. Hier lohnt sich also ein Steuerelement.
 
Sacht mal hab ihr schon mal was von SUCHEN gehört ?
Ja, das Forum hat eine Suchfunktion.
Und dort gibt es einen Eintrag eintrag im datagrid färben
Eine TableRow besitzt eine Eigenschaft BackColor, so, dass du jede Zeile einzeln Färben kannst.
Wenn du genauere Infos brauchst, kannst ja noch mal fragen.
 
Zuletzt bearbeitet:
Bei einem DataGrid in einer WinForm ist das nicht ganz so einfach.
Das habe ich bisher noch nicht gebraucht - aber erst anmotzen und dann hängen lassen wäre unfair. :-(
Habe dazu mal ziemlich ausfürlich gegoogelt und rumprobiert und auf Get Dot Net Code ein kleines Beispiel in VB 2002 gefunden, dass immer die jeweils gewählte Zeile markiert. Da funktioniert's mithilfe von DataGridTableStyles.
Du musst in dem Beispiel nur die Zeile
Code:
If Me.OwnerDG.CurrentRowIndex = RowNumber Then
in der Methode "Paint" abändern und schon bekommst du auch mehrere Zeilen gefärbt.
Ich denke mal, die Lösung in C# umzusetzen wird dir kein Hindernis sein.:)
 
Okm danke mal Gorcky,

ich hab schon die Suchfunktion benutzt und auch den selben Thread durchgelesen. Mich nervt es auch, wenn Member einfach nen neuen Thread aufmachen ohne vorher mal gesucht zu haben. Einfach mit der Einstellung "Irgendeiner wird mir schon antworten".

Die Klasse die du mir gezeigt hast färbt ja nur jeweils die angeklickte Zeile.
Ich möchte aber eine fixe Färbung, nach folgendem Prinzip:

1. DataSet erzeugen und mit Daten füllen.
2. Daten analysieren und bestimmte Zeilen ermitteln.
3. Datenbindung des Grids mit dem DataSet herstellen und diese bestimmt Zeilen fix einfärben.

Aber scheint so als ob es da keine einfache Lösung gäbe. Ich versuch mich mal an der Paint Methode.

Gruß Swebble
 
Original geschrieben von Swebble
Die Klasse die du mir gezeigt hast färbt ja nur jeweils die angeklickte Zeile.
Ich möchte aber eine fixe Färbung, nach folgendem Prinzip:

1. DataSet erzeugen und mit Daten füllen.
2. Daten analysieren und bestimmte Zeilen ermitteln.
3. Datenbindung des Grids mit dem DataSet herstellen und diese bestimmt Zeilen fix einfärben.

Aber scheint so als ob es da keine einfache Lösung gäbe. Ich versuch mich mal an der Paint Methode.
Als Antwort:
Original geschrieben von Gorcky
Du musst in dem Beispiel nur die Zeile
Code:
If Me.OwnerDG.CurrentRowIndex = RowNumber Then
in der Methode "Paint" abändern und schon bekommst du auch mehrere Zeilen gefärbt.

Bei jedem Click färbt die Prozedur nacheinander alle Zeilen.
Wenn die Zeile die richtige RowNumber hat -also die angeclickte- dann färbt er sie gelb, andernfalls weiß.
Wenn du jetzt also z.B. als Bedingung ODER RowNumber<5 hinten ranhängst, markiert er dir außer der geclickten Zeile auch die ersten 5.
Einfach, oder? :)

*edit*
Um die Zeilen innerhalb des DataGrids zu färben, kannst du ja dataGrid1[colNumber,RowNumber] verwenden, um die Rows durchzuiterieren und diese je nach Wert zu färben.
 
Zuletzt bearbeitet:
Hm, da wollte ich Dich auf die Beispieldatei verweisen, und dann ist die gar nicht mehr da... :-/

Ich meine mich zu entsinnen, dass man dazu die Klasse Datagrid vererben muss, um an die protected-Methode zu kommen - nagel mich da jetzt aber nicht drauf fest, ist schon 'ne Weile her... ;)
 

Neue Beiträge

Zurück