我是C#的初學者,我試圖讓WFA應用程序。但是有一個問題。當我運行它,它顯示第一(登錄)窗體,如果我沒有登錄關閉它,它會正常工作,但是當我登錄,第一次形成隱藏,secound窗體顯示,如果我通過單擊X按鈕關閉窗體消失了,但我可以看到進程在任務管理器中運行。在secound窗體上也是註銷按鈕,如果我點擊按鈕,它隱藏了secound窗體,並顯示第一個(登錄)窗體,如果我關閉它,仍然在後臺運行。 當通過X按鈕關閉應用程序時,如何停止進程在後臺運行? 我正在尋找,但我找不到解決方案,我的問題。 (我發現了一些附加處理,看看線程,但有太多的)關閉應用程序後繼續進程c#
有代碼,其中表單創建牆根等:
如果frmLogin登錄隱藏 - >顯示frmMail
如果註銷frmMail隱藏 - >顯示frmLogin。
如果用戶成功登錄:
this.Hide();
frmMail f2 = new frmMail();
f2.Show();
如果用戶點擊 「退出」 按鈕:
this.Hide();
frmLogin f1 = new frmLogin();
f1.Show();
我找到了解決辦法,如果每個人都有同樣的問題,這可能會有幫助。 How to switch between forms without creating new instance of forms?
How do I prevent the app from terminating when I close the startup form?
該進程仍在運行,因爲啓動窗體尚未關閉。它是隱藏的,用戶無法用它做任何事情。您似乎也創建了一個新的登錄表單,而不是使用現有的登錄表單。那麼,那不是做這件事的方法。很多可能的修復,但考慮[改變你的應用程序終止的方式](http://stackoverflow.com/a/10769349/17034),所以你不必隱藏任何東西,只需關閉你不需要的窗口。 –
@HansPassant現在我知道了。我把這些代碼粘貼到了Program.cs中,但我不確定我需要在frmLogin.cs和frmMail.cs中做些什麼才能使其工作。 – belmo
不要調用Hide(),調用Close()。展示新表單後。現在很簡單。 –