ich möchte in meinem DataGridview eine Zeile anders formatieren in Abhängigkeit eines Wertes in einer Spalte des zugrunde liegenden Datasets, die aber nicht als Spalte im DataGridView erscheint. Also wenn eine Zeile eine bestimmte ID in der Spalte ID hat soll die Zeile im DataGridView anders formatiert werden... Hat jemand eine Idee?
Ohne wahnsinnig viel Ahnung davon zu haben, wie man so etwas möglichst gut und performant macht, würde ich hier mit einer for-Schleife die Dataset.Rows[zeile][spalte] durchlaufen und beim entsprechenden Value den Zähler der Schleife dazu heranziehen, um die Zeile des DataGridViews anzuspringen und einzufärben oder anderweitig zu formatieren.
Also in etwa so:
for (int i=0; i<dataset.rows.count; i++)
{
if (dataset.rows[i][SpalteID] == wert)
{
formatiereGridRow(dataGridView.rows[i][SpalteID]);
}
}
Dazu natürlich noch entsprechend die methode "formatiereGridRow(DataGridRow row)" implementieren oder die Formatierung direkt in der Spalte vornehmen.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von bredator am .
Grundsätzlich ist es aber meiner Meinung nach am einfachsten, von einer passendn Column bzw. Cell zu erben und diese dann zu überschreiben. Hab das auch schon gemacht um z.B double Werte nur mit einen Komma darzustellen.
Ich hab sowas mal im CustomDrawCell Event gemacht.
war von der Performance nicht so schrecklich. wenn man sich nur auf bereits geladene Daten bescchränkt ist sollten sich die Performance einbussen in Grenzen halten.
mbg
Rossegger Robert
mehr fragen mehr wissen
Montag morgen ist die beste Zeit um eine erfolgreiche Woche zu beginnen
Sowas macht man im CellPainting. Als Sample kannichgrad nur Vergleich DatagridView - ListView - da wird in Abhängigkeit eines Wertes ein Image reingemalt.
stattdessen könnteste ja iwas anneres reinmalen, auch mit .DrawString.
Und die EventArgs liefern sogar eine Methode, mit der du Standard-Mal-Elemente zu zeichnen beim DGV lassen kannst