2011-01-07 22 views
6

Próbuję zrobić tak, że użytkownik jest monitowany o potwierdzenie wyjścia z mojego programu w języku C#, ale z jakiegoś powodu, jeśli powiedzą "tak", że chcieliby wyjść, pojawi się okno z potwierdzeniem jeszcze raz. Nie rozumiem dlaczego.Podwójne potwierdzenie przy wyjściu

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

Gdzie jest kod ten jest prowadzony? –

+0

Przyjmuję, że obsługujesz zdarzenie Form Close. Nie sądzę, że potrzebujesz Application.Exit() –

+0

Tak, zamykanie formularzy, ale potrzebuję application.exit(), ponieważ jest otwarte inne okno, które muszę zamknąć w tym samym czasie. – Sean

Odpowiedz

4

Ach, pan sprawdzić CloseReason dla zdarzenia FormClosing? Myślę, że możesz dostać to samo wydarzenie z dwóch różnych powodów (chociaż nie oczekuję, że stanie się to normalnie); sprawdź swoją FormClosingEventArgs, aby zobaczyć, jakie są parametry.

3

Ach, wymyśliłem, jak to naprawić. Usunąłem Application.Exit(); wydarzenie od zdarzenia FormClosing i przeniesione do zdarzenia FormClosed. Wszystko działa teraz.

7

użyć tej

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; 
     }   
    } 
Powiązane problemy