1

こんにちは私はいくつかのデータを検証するときにMessageBoxを呼び出します、データが間違っている場合、私は次のコードでMessageBoxでユーザーにメッセージを送ります:

private void button1_Click(object sender, EventArgs e)
{
    if (textBox_name.Text.Trim() != "" 
        || textBox_X.Text.Trim() != "" 
        || textBox_Y.Text.Trim() != "")
    {
        if (graph.getNodoNome(textBox_nome.Text.Trim()) != null)
        {
            MessageBox.Show("Data is wrong?", "Error");

            resetTextBoxes();
            return;
        }

    // randome stuff
    }
}

これでアプリがクラッシュします。MessageBoxを削除すると正常に動作します。助けてくれてありがとう

編集:メソッド全体のPastebayリンクhttp://pastebay.com/82690

4

2 に答える 2

1

例外の種類について言及する必要があります。

私はそれを推測することができないので、他の潜在的なエラーの原因についてコメントしますか?

正直なところ、あなたの

        if (textBox_nome.Text.Trim() != "" 
            || textBox_X.Text.Trim() != "" 
            || textBox_Y.Text.Trim() != "")

する必要があります

        if (textBox_nome.Text.Trim() != "" 
            && textBox_X.Text.Trim() != "" 
            && textBox_Y.Text.Trim() != "")

すべてのフィールドが入力されていることを確認します。

Int.Parseは無効な場合にスローします、私は提案します(疑似C#で):

int x;
if(!int.TryParse(text, out x)) x = 0; // some default value
于 2010-01-16T00:30:22.683 に答える
0

「graph.getNodoNome」と「randomestuff」の部分についてもっと情報が必要だと思います。これらの行をコメントアウトすると、問題なく実行されます。私はメッセージボックスが問題ではないことをほぼ保証します。

getNodoNomeメソッドまたはランダムなものがあなたを取得しているに違いありません。

1)両方をコメントアウトし、「クラッシュ」するかどうかを確認します。2)最初の「graph.getNodoNome」のコメントを外してクラッシュするかどうかを確認します3)「graph ...」のコメントを外し、「randomestuff」のコメントを外してクラッシュするかどうかを確認します

エラーメッセージが表示されない場合は、簡単な手順を実行する必要があります。

于 2010-01-14T16:23:58.660 に答える