• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > .NET实现父窗体关闭而不影响子窗体的方法

.NET实现父窗体关闭而不影响子窗体的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了vb.net 父窗体,vb.net mdi子窗体,vb.net 关闭窗体,vb.net窗体关闭事件,vb.net 子窗体等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一般而言,在传统的VB6中父子窗体(诸如“闪屏”窗体是“父窗体”加载内容,然后启动自动关闭,启动主窗体,是子窗体)的交互中,我们只需按照这样的逻辑“按部照搬”地书写即可(假设“闪屏”窗体设置为启动窗体):

SplashScreen.Close()
MainForm.Show()

</div>

但是在VB.NET或者C#中却不能这样写。因为这样写的结果是闪屏窗体“一闪而过”,接着啥也不会出现了。

究其原因,是因为NET中一切都是“类”——闪屏窗体是一个类,这个类内部的某个事件内部引用了“主窗体”这个类,并且把它创造出来。现在你突然间关闭了“闪屏”窗体,意味着创建这个“主窗体”的UI线程被终止,自然属于这个类内部的所有其它引用类也就成了“无米之炊”——皮之不存,毛怎焉附?因此两个窗体“一先一后”被关闭了。

解决此类问题的方法在于分离两个窗体的创建线程——不让主窗体通过闪屏窗体UI进行创建。干脆创建一个前台Thread(不能把IsBackGround设置为true,因为这样会随着闪屏窗体关闭而自行关闭!),然后在Thread内部的委托中使用Application.Run(new 一个窗体实例))。

至于VB.NET中,除了可以用以上方法,还可以直接右键项目,做如下设置:

“关闭模式”是指代用何种方式关闭全部的程序(窗体)。默认“当启动窗体关闭”时(意味着哪个窗体是启动窗体,它关闭了,其余窗体都跟着自动关闭)。当然您也可以选择“最后一个窗体关闭时”,这就意味着只有最后的窗体关闭的时候才是全部窗体关闭。因此应该选这项。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .NET实现父窗体关闭而不影响子窗体的方法

相关文章

  • 2017-05-28C#实现读取指定盘符硬盘序列号的方法
  • 2017-05-28c#的dataset离线数据集示例
  • 2017-05-28使用C#发送带附件的电子邮件的方法的代码示例分析
  • 2017-05-28Silverlight将图片转换为byte的实现代码
  • 2017-05-28C#程序(含多个Dll)合并成一个Exe的简单方法
  • 2017-05-28C#中析构函数、Dispose、Close方法的区别
  • 2017-05-28C#实现图像锐化的方法
  • 2017-05-28C#动态生成DropDownList执行失败原因分析
  • 2017-05-28C#实现自定义Dictionary类实例
  • 2017-05-28C#图像重新着色的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#如何自动选择出系统中最合适的IP地址
    • C#实现读写ini文件类实例
    • c# 获取网页中指定的字符串信息的实例代码
    • C#实现Datatable排序的方法
    • C#虚方法的声明和使用实例教程
    • C#获取文件创建时间的方法
    • C#中改变DataGridView控件边框颜色的方法
    • C#中设置textbox限制条件的方法
    • C#中使用split分割字符串的几种方法小结
    • 在Winform动态启动、控制台命令行的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有