在C#中窗口的顯示有兩種方式:模態顯示(showdialog)和非模態顯示(show)。
二者最常見的區別是:
模態顯示后,
彈出窗口阻止調用窗口的所有消息響應。
只有在彈出窗口結束后調用窗口才能繼續。
在模態窗口“關閉”后,可以讀取模態窗口中信息,包括窗口的返回狀態,窗口子控件的值。
舉例子:
private void btn_Add_Click(object sender, EventArgs e)
{
GroupAdd f = new GroupAdd();
f.ShowDialog();
Fill();
}
上述f窗體f.showDialog()后后面的Fill()代碼並沒有被執行,當f窗體關閉后,Fill()才被執行。
用在增加分組時增加完了,顯示窗口才會被填充
非模態顯示后,
可以在彈出窗口和調用窗口之間隨意切換。
調用窗口調用show方法后,下面的代碼可以立即執行。
在非模態窗口關閉后,窗口的所有資源被釋放,窗口不存在,無法獲取窗口的任何信息。