C#中窗体show()与showdialog()的区别

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

posted on 2018-10-21 10:17  fenglianchen  阅读(4651)  评论(0编辑  收藏  举报

导航