2013-03-26 12 views
7

Sto scrivendo un'applicazione Windows Form in C# che utilizza solo un modulo. Quando ho voglia di uscire e chiudere l'applicazione, aggiungo il codiceCome uscire da un'applicazione Windows Form in C#

private void Defeat() 
{ 
    MessageBox.Show("Goodbye"); 
    this.Close(); 
} 

alla classe Form1 : Form, che è la classe modulo che è stato creato automaticamente da Visual Studio. Ma quando questo codice viene eseguito, ottengo il seguente messaggio:

un'eccezione non gestita di tipo 'System.Runtime.InteropServices.ExternalException' si è verificato in System.Drawing.dll

Ulteriori informazioni: Si è verificato un errore generico in GDI +.

Un'immagine del messaggio:

Error message

Qual è il problema?

Come si deve uscire dalla mia applicazione?

risposta

19

Prima è necessario quotare la stringa in modo che la finestra di messaggio sappia cosa fare, quindi uscire dall'applicazione dicendo al contesto dell'applicazione di uscire.

private void Defeat() 
{ 
    MessageBox.Show("Goodbye"); 
    Application.Exit(); 
} 
-2
private void btnExit_Click(object sender, EventArgs e) 
{ 
    this.Close(); //”this” refers to the form 
} 
+1

L'utente sta già facendo questo. – LarsTech

0

Se si vuole chiudere l'applicazione, si prega di provare questo:

DialogResult dialog = new DialogResult(); 

    dialog = MessageBox.Show("Do you want to close?", "Alert!", MessageBoxButtons.YesNo); 

    if (dialog == DialogResult.Yes) 
    { 
     System.Environment.Exit(1); 
    }