在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方法后,下面的代码可以立即执行。
在非模态窗口关闭后,窗口的所有资源被释放,窗口不存在,无法获取窗口的任何信息。