關閉模態表格

當使用 ShowDialog 方法顯示錶單時,必須將表單的 DialogResult 屬性設定為接近表單。可以使用也稱為 DialogResult 的列舉來設定此屬性。

要關閉表單,你只需要在某個事件處理程式中設定表單的 DialogResult 屬性(由 DialogResult.None 設定為任何值)。當你的程式碼退出事件處理程式時,WinForm 引擎將隱藏表單,並且初始 ShowDialog 方法呼叫之後的程式碼將繼續執行。

private cmdClose_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.Cancel;
}

呼叫程式碼可以捕獲 ShowDialog 的返回值,以確定使用者在表單中單擊的按鈕。當使用 ShowDialog() 顯示時,表格不會自動處理(因為它只是隱藏而未關閉),因此使用 using 塊以確保表格處理非常重要。

下面是一個檢查使用內建 OpenFileDialog 的結果,檢查結果,以及在處理之前從對話方塊訪問屬性的示例。

using (var form = new OpenFileDialog())
{
    DialogResult result = form.ShowDialog();
    if (result == DialogResult.OK)
    {
        MessageBox.Show("Selected file is: " + form.FileName);
    }
}

你還可以在按鈕上設定 DialogResult 屬性。單擊該按鈕會將表單上的 DialogResult 屬性設定為與按鈕關聯的值。這允許你關閉表單而不新增事件處理程式以在程式碼中設定 DialogResult

例如,如果向表單新增一個 OK 按鈕並將其屬性設定為 DialogResult.OK,那麼當你按下該按鈕時表單將自動關閉,並且呼叫程式碼將從 ShowDialog() 方法呼叫返回 DialogResult.OK