【发布时间】:2017-06-15 17:57:13
【问题描述】:
我有一个表格,第一个问题是,这个人想回答这些问题吗?如果它等于“否”,则隐藏其他输入。当我隐藏输入时,我想删除这些字段,使它们为空白。
当我隐藏我的组合框并使用:calledUs.SelectedIndex = -1; 时,它会返回一个错误提示
对象引用未设置为对象的实例
但它做了我想要的,只是有一个错误。
我是否遗漏了一些东西来克服 Null 引用?我一直在阅读以下 Stack Overflow 问题:
Combobox text when clearing items
What is a NullReferenceException, and how do I fix it?
任何帮助都会很棒。
更新:
代码示例:
private void wantToAnswer_SelectedIndexChanged(object sender, EventArgs e)
{
if (wantToAnswer.SelectedItem.ToString() == "Yes")
{
//THIS IS THE PANEL THE COMBOBOX IS WITHIN
clothingCaughtFire.Visible = true;
Refresh();
}
else
{
calledUs.SelectedIndex = -1;
//THIS IS THE PANEL THE COMBOBOX IS WITHIN
clothingCaughtFire.Visible = false;
Refresh();
}
}
【问题讨论】:
-
你在构造函数中使用
calledUs.SelectedIndex = -1;吗?如果是这样,你是在使用之前还是之后使用InitializeComponent();? -
或者您有 SelectedIndexChanged 事件处理程序吗?异常来自该代码。
-
我在使用
SelectedIndex语句之前使用InitializeComponent();。 -
wantToAnswer.SelectedItem也可以是null和wantToAnswer.SelectedItem.ToString()会抛出异常 -
@Gary Henshall:
wantToAnswer.SelectedItem == null是异常的可能原因;.SelectedItem?.toString()不会破坏任何东西,这就是为什么值得一试