编辑:找到解决方案。 DataGridViewColumn HeaderText单元格被定义为DataGridView中的一行。当它们发生变化时,会调用DataGridView.CellValueChanged
事件。
所以我不知道造成这个问题的原因。我生成的设计器代码每次设置列的HeaderText时都会抛出NullReferenceException。列是在DataGridView属性中创建的。但是,当我放入一个快速的try-catch来查看HeaderText是什么时,名称是正确的。这是HeaderText任务之一:
this.lightType.HeaderText = "Type";
这是一个快速代码,我在分配后验证了HeaderText是否正确(我没有将它保留在Designer代码中;只是为了调试)。
try
{
this.lightType.HeaderText = "Type";
}
catch(NullReferenceException e)
{
MessageBox.Show(e.Message);
MessageBox.Show(lightType.HeaderText);
}
MessageBox和调试器在赋值后都直接显示正确的名称,但赋值仍会抛出NullReferenceException。
有什么想法吗?
答案 0 :(得分:0)
显然,列名被定义为DataGridView的一行,所以当名称被更改时,会调用DataGridView.CellValueChanged
事件,我在我的代码中有一个函数,它调用了未声明的值。< / p>