使用combobox.selecteditem.tostring();未将对象引用设置为对象的实例;

时间:2013-10-20 19:37:53

标签: c# string file-io combobox

我正在尝试替换.text文件中的某些文本行,但是我收到了上面指定的错误。请帮忙,我不知道错误意味着什么并且到处寻找试图找到解决这个问题的方法。事先谢谢,对我来说没有什么事情真的有意义!如果您需要任何其他信息,请询问而不是仅仅将我的帖子设置为偏离主题,我真的不明白这意味着什么。

当前代码:

    private void DeleteButton2_Click(object sender, EventArgs e)
    {
        if (comboBox2.SelectedItem == "")
        {
            MessageBox.Show("Please Select a Contact.");
        }
        else
        {

            comboBox2.Items.Remove(comboBox2.SelectedItem);
            comboBox1.Items.Remove(comboBox2.SelectedItem);
            string currentselection = comboBox2.SelectedItem.ToString();
            File.WriteAllLines(currentselection + ".txt",       File.ReadAllLines(currentselection + ".txt").Select(line => line.Replace(currentselection, "")));
        }
    }

3 个答案:

答案 0 :(得分:1)

在尝试访问null的内容时,对象引用未设置为对象的实例。在您的情况下,comboBox2.SelectedItem似乎为空。在访问之前,您需要检查它。做== ""并不是一回事!

改变你的:

if (comboBox2.SelectedItem == "")

要:

if (comboBox2.SelectedItem == null)

另外,您会注意到,一旦删除了该项目 - 尝试使用SelectedItem访问该项目将不再有效。

答案 1 :(得分:0)

试试这个。在这条线下设一个断点。

comboBox2.Items.Remove(comboBox2.SelectedItem); - 第一个

观察checkbox2.items如何更改并且seletItem为空。

答案 2 :(得分:0)

这意味着SelectedItem为空。如果在组合框中没有选择任何内容,SelectedItem将为null。

NullReference异常始终意味着您尝试访问值为null的成员。您应该使用调试器并在发生错误时检查所有变量。