2010-07-08 10 views
13

¿Cómo devuelvo un código de salida distinto de cero desde una aplicación de Windows Forms?Código de salida de la aplicación Windows Forms

Application.Exit() es la forma preferida de salir de la aplicación, pero no hay ningún argumento de código de salida.

que sé de Environment.Exit(), pero eso no es una buena manera de cerrar el ciclo de aplicación ....

Respuesta

27

Application.Exit simplemente forzar la llamada a Application.Run (que suele ser en program.cs) a fin. por lo que podría tener:

Application.Run(new MyForm()); 
Environment.Exit(0); 

y aún dentro de la llamada de aplicación Application.Exit para cerrarla.

Pequeña muestra

class Program 
{ 
    static int exitCode = 0; 

    public static void ExitApplication(int exitCode) 
    { 
     Program.exitCode = exitCode; 
     Application.Exit(); 
    } 

    public int Main() 
    { 
     Application.Run(new MainForm()); 
     return exitCode; 
    } 
} 

class MainForm : Form 
{ 
    public MainForm() 
    { 
     Program.ExitApplication(42); 
    } 
} 
+0

Gran ejemplo, muy cerca de lo que necesito. – Fedearne

+0

asegúrese de que sus códigos de salida sean enteros positivos, o bien% ERRORLEVEL% en el símbolo del sistema le devolverá 0 para los códigos negativos. Por lo tanto, en el ejemplo, exitCode debe estar en buen estado y ExitApplication también debe estar en su lugar. –

+0

Gracias, exactamente lo que necesitaba. – VivekDev

13

Si el método devuelve un valor main puede devolver el código de salida allí. De lo contrario, puede usar Environment.ExitCode para configurarlo.

+2

+1 Gran manera rápida de lograr esto. Sin embargo, tengo una aplicación muy grande, con bastantes códigos de salida posibles y muchas maneras diferentes de salir. Iré con el ejemplo de VirtualBlackFox en mi aplicación actual. – Fedearne

+0

Esta debería haber sido la respuesta aceptada. – Loudenvier

0

vaya a la pestaña del evento en su formulario y haga clic en hacer doble clic en él y luego en el código escriba escribir Environment.Exit (0);

Cuestiones relacionadas