【发布时间】:2012-04-28 08:47:54
【问题描述】:
当我尝试将项目添加到组合框时,我得到:
“未处理 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");
【问题讨论】:
-
你在哪里声明和创建了comboBox1?
-
通过这个调试的时候,
null是哪个对象?您希望该对象在哪里初始化?另外,请注意您在catch块中丢弃了有价值的信息。您显示消息,但忽略堆栈跟踪。堆栈跟踪将告诉您哪一行代码引发了异常。 (您也忽略了任何潜在的内部异常,尽管我怀疑在这种特殊情况下是否存在异常。) -
@Jason formName.Designer.cs
private System.Windows.Forms.ComboBox comboBox1; -
@MadBurn:在您之前的评论中,您显示了
comboBox1的声明位置,但没有显示它的初始化位置。我会认为 Windows 窗体会为你处理这部分,但如果你不小心以某种方式短路了窗体设计器的那部分,那么可能会导致这种情况。 -
@MadBurn:选择@nmaait 的答案,而不是让我将我的评论转换为答案。他提供了更具体的信息。 (尤其是关于
InitializeComponent()的部分,因为我不会做很多 WinForms,所以我不会猜到。)
标签: c# .net winforms visual-studio-2010 .net-3.5