Как изменить цвет разделителя столбца в datagridview c # winforms - PullRequest
0 голосов
/ 05 июня 2018

Сначала я попытался изменить dataGridView1.BackgroundColor, dataGridView1.GridColor, но не сработало .. затем я попытался dataGridView1.EnableHeadersVisualStyles = false dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.White, но у меня ничего не получилось ..

*screenshot

1 Ответ

0 голосов
/ 05 июня 2018

Вам необходимо обработать событие CellPainting и закрасить фон требуемым цветом, например, таким же, как GridColor, а затем выполнить остальную часть рисования, ограничив область рисования прямоугольником, исключая делитель:

private void DataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.RowIndex == -1)
    {
        var dgv = (DataGridView)sender;
        var r = e.CellBounds;
        var w = 0;
        if (e.ColumnIndex > -1)
        {
            w = dgv.Columns[e.ColumnIndex].DividerWidth;
            r.Width = r.Width - w;
        }
        e.Graphics.SetClip(r);
        e.Paint(r, DataGridViewPaintParts.All);
        e.Graphics.SetClip(e.CellBounds);
        if (w > 0)
        {
            r = new Rectangle(r.Right - 1, r.Top, w + 1, r.Height);
            using (var brush = new SolidBrush(dgv.GridColor))
                e.Graphics.FillRectangle(brush, r);
        }
        e.Handled = true;
    }
}

Например, если вы установите DividerWidth для столбцов на 10 и установите GridColor на Color.Red, вы можете получить следующий результат, используя код выше:

enter image description here

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