http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2619|回复: 2

[咨询站长] C#中From父窗体关闭的时候如何防止子窗体跟着关闭,如何检测父窗体是否有子窗体。

[复制链接]
发表于 2015-9-5 18:55:49 | 显示全部楼层 |阅读模式
本帖最后由 我是MT 于 2015-9-5 19:01 编辑

有两个窗体,一个是Form1 一个是Form2。  Form1是主窗体,Form2是由主窗体的timer事件弹出来的一个“子窗体”。

因为在弹出来Form2的时候,我在Form1.cs文件中,实例化From2的同时设置了Form2.owner = Form1 ;正确的写法Form2.owner = this;
也就是说这个时候Form1变成了Form2的拥有者,可以理解为Form1是Form2的父窗体吗?

然后通过子窗体,我发现可以访问父窗体上面的timer控件。也就是可以“通过子窗体给父窗体”传值。

但问题来了,当两个窗体都同时显示的时候,最小化From1窗体,则From2窗体也跟着最小化了。这是为啥呢,有没有办法,使得在最小化From1的时候,Form2不受影响呢。还有,如下图所示的案例中,我在点击按钮“重新设置”的时候,如果检测到子窗体From2显示了,则close掉Form2.这里的Form2弹出来的方式是:Form2.ShowDialog();我发现这样子弹出来Form2,焦点被锁定在Form2上面,即便Form1挡在前面,也是无法对Form1窗体操作的。

还有,如果两个窗体同时显示出来了,当我点击Form1上面的Button1的时候,如何销毁掉Form2?
也就是说如何来判断Form2有实例化。貌似C#没有检测childform的方法。有时候关闭Form1的时候,Form2会莫名的销毁了。
33333333333.gif



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-9-6 09:16:46 | 显示全部楼层
第一个窗体是不能关闭的,只能隐藏。第一个关闭了整个程序就结束了
 楼主| 发表于 2015-9-18 01:21:02 | 显示全部楼层
站长苏飞 发表于 2015-9-6 09:16
第一个窗体是不能关闭的,只能隐藏。第一个关闭了整个程序就结束了

嗯。虽然是做个简单的winform。但是发现还是学到了很多技巧和知识。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-4 06:27

© 2014-2021

快速回复 返回顶部 返回列表