Visual C#combox1.Items.Add(“test”);错误?

时间:2012-04-17 01:45:35

标签: c# .net winforms visual-studio-2010 .net-3.5

当我尝试将项目添加到组合框时,我得到:

“NullReferenceException未处理” “对象引用未设置为对象的实例。”

无论我如何将代码添加到组合框中,都会发生这种情况。

comboBox1.Items.Add("test");

try
{
    Parties.Open();
    String test = "SELECT PartyName FROM Parties WHERE PartyID = 4";
    selectParty = new OleDbCommand(test, Parties);
    OleDbDataReader testing = selectParty.ExecuteReader();
    while (testing.Read())
    {
        MessageBox.Show(testing.GetValue(0).ToString());
        comboBox1.SelectedIndex =  comboBox1.Items.Add(testing.GetValue(0).ToString());
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
    return;
}

(凌乱的代码......沮丧!)

我对.NET和C#很陌生,我不明白这里发生了什么,我到处发生的一切都告诉我上面的代码应该可行,但事实并非如此。 MSDN只列出:

comboBox1.Items.Add("Text");

2 个答案:

答案 0 :(得分:3)

您在哪里尝试将项目添加到ComboBox?

如果在InitializeComponent()之前调用上面的代码,则会抛出异常;在表单构造函数中。或者,如果要在代码中的其他位置分配comboBox。

确保所有代码都在InitializeComponent()之后完成,这是调用设计器中代码的方法。

答案 1 :(得分:0)

visual studio将在使用设计器修改UI时添加InitializeComponents()方法。

您应该在表单构造函数体中调用InitializeComponents()方法。如果代码与控件交互,则需要在InitializeComponent调用之后放置代码。任何不与控件交互的代码都可以在InitializeComponents()之上或之下。

此外,如果双击设计器中的控件,Visual Studio将创建一个Form_Load事件处理程序,该处理程序在表单构造函数之后运行。