Как установить цвет делителя в заголовке столбца

Я установил ширину делителя и высоту делителя на ненулевое значение, а затем использовал dataGridview1.GridColor = Color.Red установить цвет разделителей. Это не влияет на заголовок, хотя. Как я могу изменить цвет разрыва между ячейками заголовка?; т.е. как я могу сделать этот пробел красным тоже?

Пример таблицы данных с белым разделителем

1 ответ

Решение

Обновление: хитрость заключается в том, чтобы позволить вашим собственным стилям применяться в заголовках. Для этого вам нужна эта линия, чтобы отключить EnableHeadersVisualStyles флаг:

  dataGridView1.EnableHeadersVisualStyles = false;

Без этого применяются пользовательские настройки. Смотрите MSDN


Старый ответ:

Вы всегда можете сделать что-то, нарисовав владелец ячеек заголовка.

Вот короткий пример:

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.RowIndex >= 0) return;  // only the column headers!
    // the hard work still can be done by the system:
    e.PaintBackground(e.CellBounds, true);
    e.PaintContent(e.CellBounds);
    // now for the lines in the header..
    Rectangle r = e.CellBounds;
    using (Pen pen0 = new Pen(dataGridView1.GridColor, 1))
    {
        // first vertical grid line:
        if (e.ColumnIndex < 0) e.Graphics.DrawLine(pen0, r.X, r.Y, r.X, r.Bottom);
        // right border of each cell:
        e.Graphics.DrawLine(pen0, r.Right - 1, r.Y, r.Right - 1, r.Bottom);
    }
    e.Handled = true;  // stop the system from any further work on the headers
}

Другие вопросы по тегам