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

C# 未使用combobox将对象引用设置为对象的实例。selecteditem.tostring();,c#,string,file-io,combobox,C#,String,File Io,Combobox,我正在尝试替换.text文件中的某些文本行,但遇到上面指定的错误。请帮忙,我不知道这个错误是什么意思,我到处找,试图找到解决这个问题的方法。没有什么对我来说是有意义的,提前谢谢!如果你需要任何其他信息,请询问,而不仅仅是将我的帖子设置为离题,我也不明白这意味着什么 当前代码: private void DeleteButton2_Click(object sender, EventArgs e) { if (comboBox2.SelectedItem == ""

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

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

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


观察checkbox2.items如何变化,选择项为空。

这意味着
SelectedItem
为空<如果组合框中未选择任何内容,则代码>选择编辑项将为空


NullReference异常始终表示您试图访问null值上的成员。出现错误时,应使用调试器并检查所有变量。

在尝试访问空对象时,对象引用未设置为对象的实例。在您的情况下,
comboBox2.SelectedItem
显示为空。在访问它之前,您需要检查它。做
==”
不是一回事

更改您的:

if (comboBox2.SelectedItem == "")
致:


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

哪一行导致异常?
comboBox2.SelectedItem
当然为空。@RohitVats这是我不理解的,为什么在程序中我将其设置为某个值时,
comboBox2.SelectedItem
null?如果在其上设置断点,comboBox2.SelectedItem等于什么?当您从组合框中删除selectedItem(首先删除)时,当您在输入方法之前读取它的null时,它应该为null,或者在这一行之后变为null-
comboBox2.Items.remove(comboBox2.selectedItem)因为您从ItemSource中删除了selectedItem,而ItemSource会自动将selectedItem设置为空。是吗?非常感谢你!我明白我现在做了什么!当我能回答的时候,我会回答。
if (comboBox2.SelectedItem == null)