Fedearne
Fedearne

Reputation: 7368

Exit code from Windows Forms app

How do i return a non-zero exit code from a Windows Forms application.

Application.Exit() is the preferred way to exit the application, but there is no exit code argument.

I know about Environment.Exit(), but that is not a nice way to close the application loop....

Upvotes: 22

Views: 52050

Answers (3)

Hans Olsson
Hans Olsson

Reputation: 55059

If your main method returns a value you can return the exit code there.

Otherwise you can use Environment.ExitCode to set it. E.g. to set the would-be exit code when the main form is about to close:

private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
    Environment.ExitCode = <exit code>;
}

Upvotes: 16

behnam
behnam

Reputation: 7

Go to event tab in your form and in click place double click on it and then in code place write Environment.Exit(0);

Upvotes: -1

Julien Roncaglia
Julien Roncaglia

Reputation: 17837

Application.Exit just force the call to Application.Run (That is typically in program.cs) to finish. so you could have :

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

and still inside your application call Application.Exit to close it.

Small sample

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);
    } 
}

Upvotes: 33

Related Questions