Laden...

DataGridView: Zellen aufgrund von Bedingungen einfärben

Erstellt von romu2000 vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.608 Views
Thema geschlossen
R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 11 Jahren
DataGridView: Zellen aufgrund von Bedingungen einfärben

Hallo zusammen,

ich stehe gerade wohl ein wenig auf dem Schlauch.

Gibt es eine möglichkeite in einem DataGridView spezielle Zeilen einzufärben ?

Das die Zeilen abwechselnd eine andere Farbe bekommen habe ich schon hinebkommen.

Ich möchte allerdings folgendes:

In der ersten Spalte steht die Beleg ID die ohne Probleme auch mal 10 Zeilen in Anspruch nehmen kann. Nun möchte ich die 10 Zeilen rot markieren und bein der nächsten Zeile die dann z.b. nur 5 Zeilen mit der gleichen Beleg ID nutzt die Zeilen weiss färben. Das ganze soll dann immer anhand der Beleg ID weiter gehen.

Hat da evtl. jemand einen Ratschlag für mich ?

Vielen dank im Voraus und Grüße

1.696 Beiträge seit 2006
vor 11 Jahren

Hallo,

es geht dir also um den Algorithmus bzw. die Findung der Bedingung für das Färben? Wenn du schon die ID als Teil der Bedingung festgelegt hast, dann sollte es nicht schwierig sein. Aber ... wenn du sagst mit der gleichen ID z.B. 10 mal rot und z.B. 5 mal weiss, wobei die Anzahl der Zeilen auch noch variabel ist, dann wird's sehr schwierig, vernünftige Algorithmus zu finden.

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 11 Jahren

hallo,

ja , das Problem ist, das bei jedem Kunden die Beleg ID praktisch die Auftragsnummer ist und diese wird pro Artikel vorne im Datagridview angezeigt und kann natürlich pro Auftrag variieren 😦

Grüße

1.696 Beiträge seit 2006
vor 11 Jahren

und warum anders farbig markieren, wenn es sich um den gleichzen Auftrag handelt? Nach welchen Kriterium machst du das? Nimm dieses Kriterium und baue in deine Entscheidung ein.

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

4.221 Beiträge seit 2005
vor 11 Jahren

@romu2000

Bitte jeweils genau darauf achten was Du schreibst....

Zuerst schreibst Du was von DataGrid... und später von DataGridView....

Also welches Control setzt Du ein ?

Gruss
Programmierhans

Hinweis von herbivore vor 11 Jahren

Die Stellen, an denen fälschlich der falsche Klassenname verwendet wurde, wurden mittlerweile korrigiert.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo romu2000,

bitte antworte nicht nur, sondern editiere auch die bestehenden Beiträge, siehe Bitte die exakten Klassennamen verwenden! (insbes. bei DataGrid/DataGridView/GridView).

herbivore

R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 11 Jahren

Hallo,

ja, es handelt sich um ein DataGridView in welchem die Zeilen wie oben beschrieben gefärbt werden sollen.

Sorry für die Umstände.

Beste Grüße

C
258 Beiträge seit 2011
vor 11 Jahren

Hallo das ist relativ einfach du musst doch nur über alle Reihen iterieren sehen ob die Id anderes ist als beim letzten Durchlauf und dann die Farbe setzten.

R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 11 Jahren

Hallo,

vom Gedanken habe ich mir das so auch gedacht nur fehlt es mir leider bei der Umsetzung. Wie kann ich c# sagen das er mir die aktuelle Zeile mit der vorherigen abgleicht ?

Beste Grüße

1.696 Beiträge seit 2006
vor 11 Jahren

Ach, und ich dachte, dass du's schon raus hast.

Wie wär's mit speichern und vergleichen, etwa so:


oldValue = ...
for ... {
   currentValue = ...
   if (currentValue!=oldValue) {
   // hier gruppenwechsel
   bgColor = ....
   oldValue = currentValue;
   }
   ... = bgColor;
}

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

Hinweis von herbivore vor 11 Jahren

Zwei Werte miteinander zu vergleichen, auch wenn es in einer Schleife darum geht, einen Wert mit seinem Vorgänger zu vergleichen, fällt eindeutig unter die Grundlagen, die wir als bekannt voraussetzen. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

Thema geschlossen