У меня есть таблица данных, в которой каждые две последовательные строки с одинаковым значением первого столбца должны иметь одинаковый цвет фона, а цвет фона чередуется.
Пример:
- Строка 0: 10 (красный фон)
- ряд 1: 10 (красный фон)
- ряд 2: 15 (синий фон)
- ряд 3: 15 (синий фон)
- Строка 4: 20 (красный фон)
- Строка 5: 20 (красный фон)
- Строка 6: 25 (синий фон)
- Строка 7: 25 ( Синий фон)
private void coordDGV_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
//Controls the background painting of the coordDGV
int selCol = e.ColumnIndex;
int selRow = e.RowIndex;
bool alternateRows = false;
if (selRow >= 1)
{
if (coordDGV.Rows[selRow].Cells[0].Value.ToString() == coordDGV.Rows[selRow - 1].Cells[0].Value.ToString() && alternateRows)
{
coordDGV.Rows[selRow].Cells[0].Style.BackColor = System.Drawing.Color.Aqua;
coordDGV.Rows[selRow - 1].Cells[0].Style.BackColor = System.Drawing.Color.Aqua;
alternateRows = !alternateRows;
e.Handled = true;
return;
}
else if (coordDGV.Rows[selRow].Cells[0].Value.ToString() == coordDGV.Rows[selRow - 1].Cells[0].Value.ToString() && !alternateRows)
{
coordDGV.Rows[selRow].Cells[0].Style.BackColor = System.Drawing.Color.Bisque;
coordDGV.Rows[selRow - 1].Cells[0].Style.BackColor = System.Drawing.Color.Bisque;
alternateRows = !alternateRows;
e.Handled = true;
return;
}
}
}
Это только половина работы, когда я опускаю выражения e.handled = true. С их вставкой DGV выглядит очень глючно