show()是非模式窗体. showDialog()是模式窗体. 区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体.而show()则不受此限制. 这是最经常的区别了, 还有一个我个人使用的心得,你可以了解 比如你先打开子窗体,想隐藏主窗体。
如果当前窗体是IsMdiContainer =true; 把它的子窗体用模式窗体打开,那是不行的。因为非顶级窗体不能显示为模式对话框,就像Word文档。 如果这个时候用Show的话,则会发生的事情是,打开子窗体的同时主窗体又显示出来,而使用ShowDialog()的时候主要当子窗体关闭的时候主窗体才会显示。 简单代码如下: Form2 f2 = new Form2(); this.Visible = false; f2.ShowDialog(); this.Visible= true; 这就是模态对话框的与Show的区别。