关于MDI窗口的问题

toplinq 2010-08-26 04:49:09
问题是这样的,我希望关闭父窗口时将子窗口都关掉
但是其中一个子窗口中 在FormClosing事件中我写了
this.Hide();
e.Cancel=true;
也就是只隐藏不关闭。

这时候,我关闭父窗口时,它自动先关闭子窗口,遇到这两句时,就把这个事件cancel掉了,不关闭窗口。达不到希望

另外,我尝试在父窗口的FormClosing事件里面写子窗口dispose,可是不行,调用的顺序是先掉子窗口的closing,时间提前被cancel掉了,请问解决方案。
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
toplinq 2010-08-26
  • 打赏
  • 举报
回复
果然,谢谢大家,结贴了
jointan 2010-08-26
  • 打赏
  • 举报
回复
子窗口的FormClosing事件中如下写:
if (e.CloseReason == CloseReason.UserClosing)
{
this.Hide();
e.Cancel = true;
}
qiuxin425 2010-08-26
  • 打赏
  • 举报
回复
下班了 帮你想想 明天回你 呵呵
toplinq 2010-08-26
  • 打赏
  • 举报
回复
你分那么多,帮忙想想办法呗。
[Quote=引用 3 楼 ly_longyue 的回复:]

顶帖 给分不!!
[/Quote]
toplinq 2010-08-26
  • 打赏
  • 举报
回复
如果这是个button的事件,这样是OK。但是我这个是主窗口右上角的关闭事件,我试图把代码写到FormClosing里面,可是这个事件后与子窗口的Formclosing事件。谢谢你的耐心。
[Quote=引用 4 楼 qiuxin425 的回复:]

主窗口关闭时遍历所有子窗口
foreach (Form form in MdiChildren) //不用限定号,所以所有子窗体全部关闭
{
form.Close();//在这实现你的编码
}
[/Quote]
qiuxin425 2010-08-26
  • 打赏
  • 举报
回复
主窗口关闭时遍历所有子窗口
foreach (Form form in MdiChildren) //不用限定号,所以所有子窗体全部关闭
{
form.Close();//在这实现你的编码
}
龍月 2010-08-26
  • 打赏
  • 举报
回复
顶帖 给分不!!
toplinq 2010-08-26
  • 打赏
  • 举报
回复
谢谢你,是个解决方案,会给你分的,但是我的需求可能更精细一点,我要求其他的子窗口还可以显示是否关闭的对话框,如果这样子,其他窗口的是否关闭对话框就弹不出来了。
[Quote=引用 1 楼 qiuxin425 的回复:]

在父窗体的closing中加入
e.Cancel = false; //强制关闭所有窗口
[/Quote]
qiuxin425 2010-08-26
  • 打赏
  • 举报
回复
在父窗体的closing中加入
e.Cancel = false; //强制关闭所有窗口

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧