-2

我正在尝试替换 .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, "")));
        }
    }
4

3 回答 3

1

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

改变你的:

if (comboBox2.SelectedItem == "")

到:

if (comboBox2.SelectedItem == null)

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

于 2013-10-20T19:44:07.457 回答
0

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

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

观察 checkbox2.items 如何变化以及 seletItem 为空。

于 2013-10-20T19:42:34.673 回答
0

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

NullReference 异常总是意味着您试图访问一个值为 null 的成员。发生错误时,您应该使用调试器并检查所有变量。

于 2013-10-20T19:43:04.240 回答