热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Show()跟ShowDialog()的区别

Show和ShowDialog有什么不同呢,什么时候用Show,什么时候用ShowDialog呢?相信看完这篇博客,你会有一个比较明确的答案。
Show和ShowDialog有什么不同呢,什么时候用Show,什么时候用ShowDialog呢?相信看完这篇博客,你会有一个比较明确的答案。

说到show跟ShowDialog的区别很多人会想到的是,他们一个是非模态一个是模态,模态窗体就是必须将其关闭(cCose)或隐藏(Hide)才能对其他窗体进行操作。这只是他们之间表面上的区别,他们真正的区别不仅仅局限于此。

show和showdialog的本质区别有两个方面:一个是代码执行上的区别;一个是自身的机制不同。

代码执行上的区别
这个区别比较容易发现,Show方法的调用会立即返回,新窗体显示的同时Show方法调用语句后面的代码会得到执行;而对ShowDialog方法的调用会被阻塞,直到新窗体关闭,ShowDialog方法调用语句后面的代码才能得到执行。

自身机制的区别
不知道大家有没有注意到这一点,请看下图



单击模态显示窗体2,并在其文本框内输入一些内容,然后点击右上角的“x”。



之后再次点击窗体1中的模态显示窗体2,这个时候你会发现文本框里的文字依然存在,这是问什么呢?因为此时窗体2并没有Close,而只是Hide(不太确定此时是不是跟Hide一样)。如果想要再次点击模态显示出现一个新的窗体2,那么只需在窗体2的Closing或者Closed事件里写上 Me.Dispose()即可。

如果第一次点击模态显示,然后输入文字,“x”掉,然后点击普通显示,会怎么样呢?再次“x”掉并显示又会有什么情况呢? 想知道答案吗?自己试试就知道啦!哈哈哈!

推荐阅读
author-avatar
随便他们好了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有