2010-07-08 66 views
13

Làm cách nào để tôi trả lại mã thoát khác 0 từ ứng dụng Windows Forms.Mã thoát từ ứng dụng Windows Forms

Application.Exit() là cách ưa thích để thoát khỏi ứng dụng, nhưng không có đối số mã thoát.

tôi biết về Environment.Exit(), nhưng đó không phải là một cách tốt đẹp để đóng vòng lặp ứng dụng ....

Trả lời

27

Application.Exit chỉ buộc các cuộc gọi đến Application.Run (Đó là điển hình trong program.cs) để kết thúc. vì vậy bạn có thể có:

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

và vẫn bên trong cuộc gọi ứng dụng Application.Exit để đóng.

mẫu nhỏ

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

Ví dụ tuyệt vời, rất gần với những gì tôi cần. – Fedearne

+0

đảm bảo mã thoát của bạn là số nguyên dương hoặc nếu không% ERRORLEVEL% trên lời nhắc lệnh sẽ trả về 0 cho mã âm. Vì vậy, trong mẫu, exitCode phải là uint và ExitApplication cũng nên dùng uint. –

+0

Cảm ơn bạn, chính xác những gì tôi cần. – VivekDev

13

Nếu phương pháp main của bạn trả về một giá trị mà bạn có thể trả về mã lối ra ở đó. Nếu không, bạn có thể sử dụng Environment.ExitCode để đặt.

+2

+1 Cách nhanh chóng tuyệt vời để thực hiện việc này. Tuy nhiên, tôi có một ứng dụng rất lớn, với một vài mã thoát có thể và rất nhiều cách khác nhau để thoát. Tôi sẽ đi với ví dụ của VirtualBlackFox trong ứng dụng hiện tại của tôi. – Fedearne

+0

Điều này đáng lẽ phải là câu trả lời được chấp nhận. – Loudenvier

0

chuyển đến tab sự kiện trong biểu mẫu của bạn và nhấp chuột vào vị trí nhấp đúp vào vị trí đó và sau đó viết mã vào Environment.Exit (0);

Các vấn đề liên quan