【问题标题】:Object reference not set to an instance of an object in InitializeEditingControlValue of a DataGridView对象引用未设置为 DataGridView 的 InitializeEditingControlValue 中的对象实例
【发布时间】:2012-11-13 16:34:43
【问题描述】:

我有一个 DataGridView,在一个包含项目列表的 ComboBox 单元格内。当我们单击其中一个项目时,我会在我的主窗口中显示这些“项目”的内容。 但是,如果用户单击小箭头选择一个项目,但最后没有选择任何项目,我得到一个 NullReferenceException(对象引用未设置为对象的实例)。

我在 Google 上发现了一些内容,说我需要实现自己的 ComboBoxCell(或列),但我发现的唯一示例比我得到的更糟糕。

为了您的信息,我在 DataBindingComplete 中填充了 ComboBoxCell 的项目,我将值放在了 RowPrePaint 中。是的:每个 ComboBoxCell 都有一个不同的“项目”列表。

请帮助找到解决方案。

附:如果有人可以解释为什么我会遇到这个问题...

【问题讨论】:

  • 您对代码的哪一部分感兴趣?哪个功能?

标签: winforms datagridview datagridviewcombobox


【解决方案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

说了这么多,如果不发布任何代码,很难猜出问题所在!

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多