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

本文关键字:实例 对象 tostring selecteditem 设置 combobox 对象引用 | 更新日期: 2023-09-27 18:36:20

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

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

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

更改您的:

if (comboBox2.SelectedItem == "")

自:

if (comboBox2.SelectedItem == null)

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

试试这个。在此行下放置一个断点。

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

观察复选框 2.items 如何更改,并且 seletItem 为空。

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

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