10

ユーザーがC#でプログラムを終了することを確認するように求められるようにしようとしていますが、何らかの理由で、「はい」と言って終了したい場合、確認ボックスが再びポップアップします。理由がわかりません。

    if (MessageBox.Show("Are you sure you want to exit?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
    {
        e.Cancel = true;
    }
    else { Application.Exit(); }
4

4 に答える 4

12

これを使って

 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show("Are you sure you want to close?", "Infomate", MessageBoxButtons.YesNo) == DialogResult.No)
        {
            e.Cancel = true;
        }        
    }
于 2012-01-11T10:41:56.117 に答える
6

あ、イベントチェックしCloseReasonFormClosing?2 つの異なる理由で同じイベントが発生する可能性があると思います (ただし、それが正常に発生するとはまったく予想していません)。FormClosingEventArgsパラメータを確認してください。

于 2011-01-07T02:45:09.713 に答える
6

ああ、私はそれを修正する方法を考え出しました。Application.Exit(); を削除しました。イベントを FormClosing イベントから削除し、FormClosed イベントに移動しました。これですべて動作します。

于 2011-01-07T02:52:40.023 に答える