2011-02-28 88 views
1

我有一對窗戶的MDI應用程序。有什麼方法可以在用戶關閉表單後禁用處理表單。我希望能夠通過調用form.Show()方法重新打開該窗體。如何在關閉後顯示錶單?

+3

你有沒有考慮隱藏的形式呢?只需調用'form.Hide()'而不是'form.Close()'。 – 2011-02-28 08:45:39

回答

10

您可以使用Form.FormClosing事件。

FormClosing事件在窗體關閉時發生。當表單關閉時,它將被釋放,釋放與表單相關的所有資源。

如果您取消此活動,表格仍保持打開狀態。要取消表單的關閉,請將傳遞給您的事件處理程序的FormClosingEventArgs的Cancel屬性設置爲true。

這應該做你會跟Form.Show()

+7

如果您在該事件中調用Form.Hide(),則應該全部設置。 – 2011-02-28 08:51:58

+0

在這種情況下,表單不會被關閉。但是我希望它被關閉,並且比用戶想要的還要再次打開它。 – Peter17 2011-02-28 08:52:46

+0

@彼得:那你爲什麼要保持它的處置?當表格關閉時,它也被處理。如果它隱藏了,它可以重新顯示。如果它已關閉,則需要重新創建它。 – 2011-02-28 09:02:47

0

可以將表單的值保存到一個單獨的類調用close(前做同樣的事情)形式的方法並加載一個新的表單,從保存的類中獲取它的值。

+3

爲什麼要這樣做?如果需要保持表單活着讓我們保持它,但在隱藏模式下,它不需要創建一批無用的代碼 – Stecya 2011-02-28 08:54:10

+0

@赫斯基:看我的編輯?下次就這樣寫。 – 2011-02-28 08:54:39

+0

這完全沒有意義。 – 2011-02-28 09:03:25

0

發送的主要形式作爲參數傳遞給子窗體,然後將子窗體可以參考的主要形式爲T隨時

public Form MainForm = null; 

    public Sample(ref Form mainForm) 
    { 
     InitializeComponent(); 
     MainForm = mainForm; 
    } 

    private void Sample_FormClosed(object sender, FormClosedEventArgs e) 
    { 
     MainForm.Show(); 
    }