2012-05-14 13 views
10

Czy można przechwycić zdarzenie zamykania formularza systemu Windows po kliknięciu aplikacji zatrzymaj. Wiem, że aplikacja przestała działać, ale czy istnieje jakakolwiek dostępna metoda, która uruchomi się w każdym przypadku, gdy aplikacja zostanie zamknięta? Znalazłem te metody z google, ale one nie działają:Przechwytywanie zdarzenia wyjścia aplikacji - WinForms

AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit); 

lub

Application.ApplicationExit += new EventHandler(this.OnApplicationExit); 

Czy to możliwe, aby zbliżyć się zdarzenie, kiedy kliknij na przycisk stop aplikacja?

+0

Masz na myśli zamknięcie przeglądarki? Należy sprawdzić metodę javascript onUnload method() lub onbeforeunload(). – Anuraj

+0

co masz na myśli przez formularze Windowsa asp.net? ASP.Net działa na WinForms? – Anuraj

+0

Zobaczmy, czy mam to proste. A.) Twój program ulega awarii lub nie odpowiada, więc musisz zamknąć go za pomocą menedżera zadań lub czegoś podobnego, a mimo to chcesz, aby zdarzenie zostało uruchomione przed jego zamknięciem. Czy to jest poprawne. Lub B.) Czy chcesz po prostu wydarzenie, gdy program kończy się normalnie? Czym dokładnie jest przycisk zatrzymania aplikacji? –

Odpowiedz

16

w pliku Program.cs, trzeba mieć te metody przed Application.Run:

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.ApplicationExit += new EventHandler(Application_ApplicationExit); 
     AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit); 
     Application.Run(new MainForm()); 
    } 

Można również użyć wyrzucać zdarzenie na MainForm (formularz stosowany w metodzie Application.Run).

Powiązane problemy