-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

null にアクセスしようとすると、オブジェクト参照がオブジェクトのインスタンスに設定されていません。あなたの場合、comboBox2.SelectedItemnull のようです。アクセスする前に、それを確認する必要があります。すること== ""は同じことではありません!

変更:

if (comboBox2.SelectedItem == "")

に:

if (comboBox2.SelectedItem == null)

また、アイテムを削除すると、 でアクセスしようとしても機能しSelectedItemなくなります。

于 2013-10-20T19:44:07.457 に答える
0

これを試して 。この行の下にブレークポイントを置きます。

omboBox2.Items.Remove(comboBox2.SelectedItem); - 最初の1つ

checkbox2.items がどのように変化し、seletItem が null になるかを確認してください。

于 2013-10-20T19:42:34.673 に答える
0

SelectedItemヌルである ことを意味します。SelectedItemコンボボックスで何も選択されていない場合は null になります。

NullReference 例外は、null の値でメンバーにアクセスしようとしていることを常に意味します。エラーが発生した場合は、デバッガーを使用してすべての変数を確認する必要があります。

于 2013-10-20T19:43:04.240 に答える