2011-06-02 82 views
0

經過大量的研究後,我仍然沒有接近解決方案。表格關閉X C#

我有一個簡單的應用程序,2個窗體.NETv3.5 C#。

應用程序加載第一個窗體,我在窗口欄上按'X'。

應用程序隱藏表單並繼續運行而不退出應用程序,即使加載的唯一表單已關閉。

當按下X時,主窗體關閉方法不會被調用,因爲按下x時窗體被隱藏。 Form.Deactivated被調用,但不是Form.Closing。

即使當X按下時,我該如何捕捉? (然後我可以實現Application.Exit())

+0

如果您有線程,請設置IsBackground = true;在下襬,所以他們與主窗體關閉 – 2011-06-02 13:03:47

+1

如何隱藏窗體的「X」關閉按鈕,當它被隱藏? – 2011-06-02 13:04:00

+2

您能否提供program.cs文件中的代碼... – 2011-06-02 13:04:38

回答

1

檢查您是否有計時器或正在運行的線程。如果這樣就停止這些。

+0

沒有定時器或線程 - 應用程序非常簡單 – Simon 2011-06-02 14:26:19

0

我想在Program.cs,你打電話Application.Run傳遞主窗體作爲參數。如果是這樣,應用程序將不會退出,直到主窗體關閉。
要按下X按鈕時捕捉事件,請將事件處理程序添加到中等表單的Closed事件,而不是主窗體的事件。在這種情況下,請撥打主窗體的Close方法(或Application.Exit)。

+0

我想在Program.cs中,您調用Application.Run傳遞主窗體作爲參數。如果是這樣,應用程序將不會退出,直到主窗體關閉。 – Simon 2011-06-02 14:24:00

+0

「我想在Program.cs中,你調用Application.Run傳遞主窗體作爲參數,如果是這樣,應用程序將不會退出,直到主窗體關閉。 這是正確的Application.Run(new formname()); 「要在按下X按鈕時捕捉事件,請將事件處理程序添加到輔助窗體的閉合事件中,而不是主窗體,在這種情況下,請調用主窗體的Close方法(或Application.Exit)。 我已經試過了。當我嘗試關閉主窗體時,輔助窗體甚至沒有實例化。 – Simon 2011-06-02 14:25:51

+0

我們稱之爲formA和formB。哪個傳遞給Application.Run?哪個隱藏?你按哪一個X? – 2011-06-02 15:53:40