Двойное подтверждение при выходе - PullRequest
7 голосов
/ 07 января 2011

Я пытаюсь сделать так, чтобы пользователю предлагалось подтвердить выход из моей программы на 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(); }

Ответы [ 3 ]

9 голосов
/ 11 января 2012

Используйте это

 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;
        }        
    }
5 голосов
/ 07 января 2011

Ах, вы проверяли CloseReason для события FormClosing? Я думаю, что вы можете получить одно и то же событие по двум разным причинам (хотя я не ожидаю, что это произойдет нормально) проверьте FormClosingEventArgs, чтобы увидеть параметры.

4 голосов
/ 07 января 2011

Ах, я разобрался, как это исправить.Я удалил Application.Exit ();событие из события FormClosing и переместил его в событие FormClosed.Теперь все работает.

...