show()是非模式窗体. showDialog()是模式窗体. 区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体.而show()则不受此限制. 这是最经常的区别了, 还有一个我个人使用的心得,你可以了解 比如你先打开子窗体,想隐藏主窗体。
如果当前窗体是IsMdiContainer =true; 把它的子窗体用模式窗体打开,那是不行的。因为非顶级窗体不能显示为模式对话框,就像Word文档。 如果这个时候用Show的话,则会发生的事情是,打开子窗体的同时主窗体又显示出来,而使用ShowDialog()的时候主要当子窗体关闭的时候主窗体才会显示。 简单代码如下: Form2 f2 = new Form2(); this.Visible = false; f2.ShowDialog(); this.Visible= true; 这就是模态对话框的与Show的区别。
本文详细解析了Windows窗体应用中模态(showDialog)与非模态(show)窗体的区别。模态窗体在打开时会阻止用户与其它窗体交互,直至关闭;而非模态窗体则允许用户同时与多个窗体进行操作。此外还介绍了在特定场景下如何正确使用这两种方法。
487

被折叠的 条评论
为什么被折叠?



