C# DataGridView单元格对齐获胜';行不通

C# DataGridView单元格对齐获胜';行不通,c#,winforms,datagridview,styles,alignment,C#,Winforms,Datagridview,Styles,Alignment,我有一个DataGridView,我在C#Winforms项目中使用它。网格不会自动生成列。我已经手动设置了列名和属性 这包括单元格的DefaultCellStyle。我希望DataGridViewCheckBoxColumn类型的所有单元格都居中对齐。我已经在designer中为这种类型的每一列手动设置了这种对齐方式。加载datagridview时不会显示这些更改 作为我的下一个方法,我在DataBindingComplete事件中使用了下面的代码(这也没有效果) 调试时,上述代码已将对齐设置

我有一个DataGridView,我在C#Winforms项目中使用它。网格不会自动生成列。我已经手动设置了列名和属性

这包括单元格的DefaultCellStyle。我希望DataGridViewCheckBoxColumn类型的所有单元格都居中对齐。我已经在designer中为这种类型的每一列手动设置了这种对齐方式。加载datagridview时不会显示这些更改

作为我的下一个方法,我在DataBindingComplete事件中使用了下面的代码(这也没有效果)

调试时,上述代码已将对齐设置为中心。但是,它仍然没有显示在网格上

如果在DataBindingComplete事件期间我执行以下操作,我可以使其工作:

foreach (DataGridViewRow dgvr in this.dgv_Automations.Rows)
{
    dgvr.Cells["isErrors"].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
然而,我有很多这样的专栏,这样做真的没有意义。编辑:我用这种方式实现了它,并且只有大约10行,在每个单元格上设置这个属性有非常明显的滞后

我的问题是:这样做的正确方式是什么?为什么设计器DefaultCellStyle不起作用?

根据
DataGridViewColumn
DefaultCellStyle
被通过
DataGridView.RowsDefaultCellStyle
DataGridViewRow.DefaultCellStyle
指定的样式覆盖,和
DataGridViewCell.Style
properties.

因此,这些样式中的一个可能被设置为与所需对齐方式不兼容的值(例如
DataGridViewContentAlignment.NotSet
DataGridViewContentAlignment.TopLeft

对于DefaultCellStyleing和继承如何工作,这是一个更有用的链接


结果我设置了一个DefaultRowStyle,它覆盖了DefaultCellStyle。确保检查所有样式

请不要在标题前加上“C#”之类的前缀。这就是标签的用途。
foreach (DataGridViewRow dgvr in this.dgv_Automations.Rows)
{
    dgvr.Cells["isErrors"].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
}