当Designer分配DataGridViewColumn HeaderText时,NullReferenceException

时间:2016-06-07 14:51:32

标签: c# visual-studio datagridview nullreferenceexception designer

编辑:找到解决方案。 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。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

显然,列名被定义为DataGridView的一行,所以当名称被更改时,会调用DataGridView.CellValueChanged事件,我在我的代码中有一个函数,它调用了未声明的值。< / p>