如何在列标题中设置dividerwidth的颜色

时间:2017-05-23 13:56:50

标签: c# datagridview datagridcolumnheader

我已将分频器宽度和分频器高度设置为非零,然后使用dataGridview1.GridColor = Color.Red设置分频器的颜色。但这并不会影响标题。如何更改标题单元格之间间隙的颜色?即我怎么能把这个差距缩小到红色?

datagrid example with white divider

1 个答案:

答案 0 :(得分: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
}

enter image description here