如何更改winform DataGridview 标头的颜色?

Posted

技术标签:

【中文标题】如何更改winform DataGridview 标头的颜色?【英文标题】:How to change the color of winform DataGridview header? 【发布时间】:2010-11-17 21:09:48 【问题描述】:

我尝试过没有成功。

有可能吗?

【问题讨论】:

【参考方案1】:

可以做到的。

来自设计师: 选择您的 DataGridView 打开属性 导航到 ColumnHeaderDefaultCellStype 点击按钮编辑样式。

您也可以通过编程方式进行:

dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Purple;

希望有帮助!

【讨论】:

这不起作用,因为您没有禁用 VisualStyles。由于 VisualStyles 设置为 true,因此对样式的任何更改都将不起作用。【参考方案2】:

这样做的方法是将数据网格视图的EnableHeadersVisualStyles 标志设置为False,并通过ColumnHeadersDefaultCellStyle.BackColor 属性设置背景颜色。例如,要将背景颜色设置为蓝色,请使用以下内容(或根据需要在设计器中设置):

_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;
_dataGridView.EnableHeadersVisualStyles = false;

如果您不将EnableHeadersVisualStyles 标志设置为False,那么您对标题样式所做的更改将不会生效,因为网格将使用当前用户默认主题中的样式。此属性的 MSDN 文档是 here。

【讨论】:

+1。不仅有效,而且解释了为什么您必须执行这两个步骤。不错! 我将它放在表单的加载事件中,以便在显示 datagridview 时设置列标题和行标题颜色。 如果您只想更改某些特定的列标题:***.com/questions/13067398/… 一千次是的! 感谢您提供这个解决方案。【参考方案3】:
dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;

【讨论】:

【参考方案4】:

如果您想将颜色更改为单列,请尝试以下操作:

 dataGridView1.EnableHeadersVisualStyles = false;
 dataGridView1.Columns[0].HeaderCell.Style.BackColor = Color.Magenta;
 dataGridView1.Columns[1].HeaderCell.Style.BackColor = Color.Yellow;

【讨论】:

【参考方案5】:

dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;

【讨论】:

【参考方案6】:

这对我有用。谢谢!

dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue; 
dataGridView1.Columns[0].HeaderCell.Style.BackColor = Color.Magenta;
dataGridView1.Columns[1].HeaderCell.Style.BackColor = Color.Yellow;

【讨论】:

【参考方案7】:

始终在设置列标题或行标题的样式之前设置dataGridView.EnableHeadersVisualStyles = false;。那么只有 ,您制作的自定义样式将应用于行和列标题。

     DataGridViewCellStyle column_header_cell_style = new DataGridViewCellStyle();
                column_header_cell_style.BackColor = Color.LightSalmon;
                column_header_cell_style.ForeColor = Color.Black;
                column_header_cell_style.SelectionBackColor = Color.Chocolate;
                column_header_cell_style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                column_header_cell_style.Font = new Font("Tahoma", 18, FontStyle.Bold, GraphicsUnit.Pixel);


this.dataGridView.ColumnHeadersDefaultCellStyle = column_header_cell_style;

【讨论】:

以上是关于如何更改winform DataGridview 标头的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 DataGridView 中的列宽?

如何使用来自底层绑定源的行对 datagridview 行执行样式更改?

C# WinForm DataGridView 过滤器暂停

vb.net winform datagridview 颜色不会变

c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决

如何检测 DataGridView CheckBox 事件变化?