对象引用未设置为 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 中的对象实例的主要内容,如果未能解决你的问题,请参考以下文章

c#,提示未将对象引用到对象的实例。怎么回事?

SQL Server2000中未将对象引用设置到对象的实例问题..

Discord.NET '对象引用未设置为对象的实例。 C# [重复]

对象引用未设置为对象的实例...错误?

Ldap连接抛出对象引用未设置为对象错误的实例

对象引用未设置为对象实例的自动映射器问题