如何在 header 列中设置分隔宽度的颜色
how to set the color of dividerwidth in column header
我已将分隔线宽度和分隔线高度设置为 non-zero,然后使用 dataGridview1.GridColor = Color.Red
设置分隔线的颜色。不过,这不会影响 header。如何更改 header 单元格之间的间隙颜色?即我怎样才能使那个间隙也变成红色?
更新: 诀窍是允许在 Headers 中应用您自己的样式。为此,您需要这一行来关闭 EnableHeadersVisualStyles
标志:
dataGridView1.EnableHeadersVisualStyles = false;
没有它,将应用用户设置。参见 MSDN
旧答案:
您始终可以通过 owner-drawing header 个单元格来完成任务。
这是一个简短的例子:
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
}
我已将分隔线宽度和分隔线高度设置为 non-zero,然后使用 dataGridview1.GridColor = Color.Red
设置分隔线的颜色。不过,这不会影响 header。如何更改 header 单元格之间的间隙颜色?即我怎样才能使那个间隙也变成红色?
更新: 诀窍是允许在 Headers 中应用您自己的样式。为此,您需要这一行来关闭 EnableHeadersVisualStyles
标志:
dataGridView1.EnableHeadersVisualStyles = false;
没有它,将应用用户设置。参见 MSDN
旧答案:
您始终可以通过 owner-drawing header 个单元格来完成任务。
这是一个简短的例子:
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
}