更改DataGridView标题单元格的文本对齐方式和字体大小

我正在尝试更改文本对齐方式和DataGridView的字体大小。 所有列都是在运行时以编程方式创建的。 这是代码..

private void LoadData() { dgvBreakDowns.ColumnCount = 5; dgvBreakDowns.Columns[0].Name = "Breakdown No"; dgvBreakDowns.Columns[1].Name = "Breakdown Type"; dgvBreakDowns.Columns[2].Name = "Machine Type"; dgvBreakDowns.Columns[3].Name = "Date"; dgvBreakDowns.Columns[4].Name = "Completed"; dgvBreakDowns.Columns[4].Visible = false; foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows) { header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel); } } 

在Form的构造函数中调用此LoadData()方法。 列已创建,但其标题更改不适用。 我认为这是因为我的循环foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)?的一个缺陷foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)? 我不确定。 我尝试将其更改为dgvBreakDowns.Columns ,我得到一个InvalidCastException。 如何选择标题单元格以应用这些更改?

我有另一个小问题。 当我运行程序时,它看起来像这样。

在此处输入图像描述

请注意,默认情况下会选择第一个Cell,因此它显示为Blue。 当然它不会影响任何东西,但它看起来有点丑陋和不整洁。 可以阻止它选择那样的Cell吗?

试试这个(注意我在这里使用的是Columns而不是Rows):

 foreach(DataGridViewColumn col in dgvBreakDowns.Columns) { col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; col.HeaderCell.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel); } 

至于取消选择单元格,请尝试dgvBreakDowns.ClearSelection()

或者只是试试这个:

 dgvBreakDowns.Columns[4].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter;