2011-01-07 3 views
6

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

Где этот код запускаемых? –

+0

Я предполагаю, что вы обрабатываете событие Form Close. Я не думаю, что вам нужно Application.Exit() –

+0

Да, закрытие формы, но мне нужно application.exit(), так как есть еще одно открытое окно, которое мне нужно закрыть одновременно. – Sean

ответ

4

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

3

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

7

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

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; 
     }   
    } 
Смежные вопросы