關閉模態表格
當使用 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
。