2010-07-08 3 views
13

Как вернуть ненулевой код выхода из приложения Windows Forms.Код выхода из приложения Windows Forms

Application.Exit() является предпочтительным способом выхода из приложения, но нет аргумента кода выхода.

Я знаю о Environment.Exit(), но это не хороший способ, чтобы закрыть цикл приложения ....

ответ

27

Application.Exit просто заставить вызов Application.Run (Это, как правило, в program.cs), чтобы закончить. так что вы могли бы:

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

и до сих пор внутри вашего приложения вызова Application.Exit, чтобы закрыть его.

Небольшой образец

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

Отличный пример, очень близко к тому, что мне нужно. – Fedearne

+0

убедитесь, что ваши коды выхода являются положительными целыми числами, иначе% ERRORLEVEL% в командной строке вернет вам 0 для отрицательных кодов. Поэтому в образце exitCode должен быть uint, а ExitApplication - также uint. –

+0

Спасибо, именно то, что мне нужно. – VivekDev

13

Если ваш метод main возвращает значение, которое может вернуть код выхода там. В противном случае вы можете использовать Environment.ExitCode, чтобы установить его.

+2

+1 Отличный быстрый способ выполнить это. У меня, однако, очень большое приложение, с довольно многими возможными кодами выхода и множеством способов выхода. Я приведу пример с помощью VirtualBlackFox в моем текущем приложении. – Fedearne

+0

Это должен был быть принятый ответ. – Loudenvier

0

перейдите на вкладку событий в своей форме и щелкните по клику, дважды щелкните по нему, а затем в поле кода напишите Environment.Exit (0);