-2

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

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

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

请帮助找到解决方案。

PS如果有人能解释我们为什么我有这个问题......

4

1 回答 1

0

因为您很可能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.

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

我希望这有帮助。

于 2012-11-13T16:51:00.283 回答