C#中showDialog()与show()的区别
顾名思义,showdialog是一个进行路经绑定的show方法,是不可以自由切换的,就是当你没有关闭当前窗体的前提下,无法关闭该窗体后面的任一页面的,它是当前唯一(路经打开)为true的。
而show方法由于未进行绑定,它所显示的各个窗口、对话框是可以相互切换,而不需要关闭当前窗口、对话框。同样由于未进行绑定,所以每个由show方法打开的窗口的顺序是非固定的,如果遇到什么问题,由show方法打开的窗口的顺序可能会有很大的改变!
show() 仅仅是显示出来窗体界面,也就是和你执行的结果在同一窗口显示,所显示的窗口可以在后台运行;而showDialog()是一个对话框窗体界面,执行结果以新窗口界面出现,不允许进行后台运行,就是你想编辑什么的时候非得先关闭showDialog()窗口界面才可以进行其他操作。
这就是它们的区别,简单的可以这样理解:
show()是非模式窗体。
showDialog()是模式窗体。
区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体,而show()则不受此限制。这是最基本的区别。
以下的东西可以作个了解:
比如你先打开子窗体,想隐藏主窗体。如果这个时候用Show的话,则会发生的事情是,打开子窗体的同时主窗体又显示出来,而使用ShowDialog()的时候主要当子窗体关闭的时候主窗体才会显示。
简单代码如下:
Form2 f2 = new Form2();
this.Visible = false;
f2.ShowDialog();
this.Visible= true;
这就是模态对话框的与Show的区别。