Раскраска парных строк в DataGridView - PullRequest
0 голосов
/ 11 марта 2020

У меня есть таблица данных, в которой каждые две последовательные строки с одинаковым значением первого столбца должны иметь одинаковый цвет фона, а цвет фона чередуется.

Пример:

  • Строка 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 выглядит очень глючно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...