对象引用未设置为 DataGridView 的 InitializeEditingControlValue 中的对象实例
Posted
技术标签:
【中文标题】对象引用未设置为 DataGridView 的 InitializeEditingControlValue 中的对象实例【英文标题】:Object reference not set to an instance of an object in InitializeEditingControlValue of a DataGridView 【发布时间】:2012-11-13 16:34:43 【问题描述】:我有一个 DataGridView,在一个包含项目列表的 ComboBox 单元格内。当我们单击其中一个项目时,我会在我的主窗口中显示这些“项目”的内容。 但是,如果用户单击小箭头选择一个项目,但最后没有选择任何项目,我得到一个 NullReferenceException(对象引用未设置为对象的实例)。
我在 Google 上发现了一些内容,说我需要实现自己的 ComboBoxCell(或列),但我发现的唯一示例比我得到的更糟糕。
为了您的信息,我在 DataBindingComplete 中填充了 ComboBoxCell 的项目,我将值放在了 RowPrePaint 中。是的:每个 ComboBoxCell 都有一个不同的“项目”列表。
请帮助找到解决方案。
附:如果有人可以解释为什么我会遇到这个问题...
【问题讨论】:
您对代码的哪一部分感兴趣?哪个功能? 【参考方案1】:因为您很可能通过访问器使用类似以下代码的方式获取选定的 ComboBox
项目:
this.textBox1.Text = MyForm.ComboItemValue();
在包含ComboBox
的表格中,您将拥有
public string ComboItemValue
get
if (this.datGridView.CurrentCell.GetType() == typeof(DataGridViewComboBoxCell))
return this.dataGridView.CurrentCell.Value.ToString();
显然,如果该值留空,这将返回 null
。
说了这么多,如果不发布任何代码,很难猜出问题所在!
我希望这会有所帮助。
【讨论】:
以上是关于对象引用未设置为 DataGridView 的 InitializeEditingControlValue 中的对象实例的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server2000中未将对象引用设置到对象的实例问题..