質問

ユーザーが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(); }
役に立ちましたか?

解決

ああ、チェックしましたか CloseReason のために FormClosing イベント? 2つの異なる理由で同じイベントを取得するかもしれないと思います(ただし、それが正常に起こるとはまったく期待していません)。あなたをチェックしてください FormClosingEventArgs パラメーターが何であるかを確認します。

他のヒント

これを使って

 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;
        }        
    }

ああ、私はそれを修正する方法を見つけました。 application.exit()を削除しました。 FormClosingイベントからのイベント、およびそれをフォームクローズイベントに移動しました。それはすべて機能しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top