热门标签 | 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”掉并显示又会有什么情况呢? 想知道答案吗?自己试试就知道啦!哈哈哈!

推荐阅读
  • Linux bash 命令行下实现可视化文件或文件夹浏览
    Linuxbash命令行下实现可视化文件或文件夹浏览  有时候部署环境,需要配置文件路径或者载入相应的配置文件。这种情况下,如果用传统的手动修改配置的方式配置,会比较容易出意外(比 ... [详细]
  • web页面报表js下载,web报表软件 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 如何在 PyCharm 中输入注册码?—— PyCharm 使用指南
    在 PyCharm 中输入注册码的操作步骤如下:首先,在菜单栏中依次选择“Help”和“Register”,然后按照提示完成注册码的输入。这一过程简单快捷,有助于用户快速激活软件并享受完整功能。此外,建议用户确保网络连接畅通,以避免注册过程中可能出现的问题。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文介绍了一种利用Dom4j库和JFileChooser组件在Java中实现XML文件自定义路径导出的方法。通过创建一个Document对象并设置根元素,结合JFileChooser选择目标路径,实现了灵活的XML文件导出功能。具体步骤包括初始化Document对象、构建XML结构以及使用JFileChooser选择保存路径,确保用户能够方便地将生成的XML文件保存到指定位置。 ... [详细]
  • 在全屏模式下优化 Qt 应用程序对 Esc 键的处理,通过为需要全屏显示的子窗口设置 `setWindowFlags(Qt::Dialog)` 属性,并调用 `showFullScreen()` 方法实现全屏显示。此方法确保了在全屏模式下,Esc 键能够正确地退出全屏并恢复到正常窗口状态。此外,还对应用程序的全屏切换逻辑进行了优化,提升了用户体验。 ... [详细]
  • 在C#中,通过重载子窗体Form2的构造函数,可以实现从父窗体向子窗体传递值的功能。具体实现方法是在Form2中定义一个带有字符串参数的构造函数,该构造函数接收父窗体传递的值并进行初始化。然而,目前子窗体向父窗体返回值的功能尚未实现,需要进一步开发和完善。 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
  • 如何在 Material-UI 中自定义 Dialog 组件的宽度? ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
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社区 版权所有