有时候我们需要重绘DataGridView的ColumnHeader的每个Cell来达到定制的目的,其实代码很简单,使用CellPainting事件即可。
重点有2个,
第一:e.RowIndx==-1时代表时ColumnHeader Row,
第二:重绘后一定要设置e.Handled=true, 否则系统还是会重绘来覆盖你的绘制内容
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == -1)
{
e.Graphics.DrawString(e.ColumnIndex.ToString(), new Font("Arial", 10, FontStyle.Regular), Brushes.Black, e.CellBounds.X, e.CellBounds.Y);
e.Graphics.FillRectangle(Brushes.Green, e.CellBounds);
e.Handled = true;
}
}