C# datagridview中的内容对齐显示对象引用未设置错误?

C# datagridview中的内容对齐显示对象引用未设置错误?,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在尝试重命名winform datagridview控件的列标题。我的代码是: gridProjectEdit.Columns[0].HeaderText = "S.NO."; 它运行良好,但当我尝试使用代码行调整内容对齐时: gridProjectEdit.Columns["S.NO."].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 它显示了以下错误: Object referenc

我正在尝试重命名winform datagridview控件的列标题。我的代码是:

 gridProjectEdit.Columns[0].HeaderText = "S.NO.";
它运行良好,但当我尝试使用代码行调整内容对齐时:

 gridProjectEdit.Columns["S.NO."].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
它显示了以下错误:

Object reference not set to an instance of an object.
当我将列标题更改为SNO only而不是S.NO,它毫无问题地工作。 如果有必要的话,我是在.NETFramework2.0中这样做的

请让我知道我哪里做错了


提前感谢。

问题是您只需设置标题文本,而不是列
名称
,因此要解决此问题,您最好记住列名,并在代码中使用它或使用
索引
(尽管在某些情况下,对于不清楚的代码,并不建议这样做)。如果您的网格具有唯一的列
HeaderText
(通常情况下),则可以使用一点
LINQ
,通过
HeaderText
搜索该列:

gridProjectEdit.Columns.OfType<DataGridViewColumn>()
               .FirstOrDefault(col => col.HeaderText == "S.NO.")
               .DefaultCellStyle.Alignment = DataGridViewContentAlignment
                                            .MiddleCenter;
gridProjectEdit.Columns.OfType()
.FirstOrDefault(列=>列标题文本==“序号”)
.DefaultCellStyle.Alignment=DataGridViewContentAlignment
.MiddleCenter;