首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

怎么关闭多个Form

2012-03-05 
如何关闭多个Form所有窗口都是用Form1 f new Form1()f.Owner thisf.ShowDialog()创建条件:a窗口打

如何关闭多个Form
所有窗口都是用
Form1 f = new Form1(); 
f.Owner = this;
f.ShowDialog();
创建

条件:
a窗口打开b窗口,b窗口打开c窗口,c窗口打开d,e,f,g窗口,d窗口打开z窗口

怎么在z,d、e、f、g任意一窗口下关闭c以及c的所有子窗口(即关闭c,d,e,f,g,z)

PS:那个z窗口,是有可能在所有的窗口内创建,然后根据条件,来判断是关闭cdefgz窗口之后先是b窗口,还是直接关闭z后先是打开z窗口的窗口

[解决办法]
1.记住在WM下所有的窗口的打开顺利与关闭顺序必须相反,最后一个被打开的必须先关闭。
2.那么a->b->c的开启顺序就必须是c->b->a关闭顺序。
3.这其实就是一个堆栈的概念吗,你建立一个堆栈,[a,b,c,d,e]假如你要关闭C,那么遍历所有的元素,然后你发现d,e都在c之上,那么就先关栈顶的元素,然后把这个元素出栈,直到c为止。
[解决办法]
1.记住在WM下所有的窗口的打开顺利与关闭顺序必须相反,最后一个被打开的必须先关闭。
2.那么a->b->c的开启顺序就必须是c->b->a关闭顺序。
3.这其实就是一个堆栈的概念吗,你建立一个堆栈,[a,b,c,d,e]假如你要关闭C,那么遍历所有的元素,然后你发现d,e都在c之上,那么就先关栈顶的元素,然后把这个元素出栈,直到c为止。
[解决办法]

探讨
引用:
如果是用f.ShowDialog();显示窗口,是不能用这个方法的

[解决办法]
模态窗口的话,父窗口必须得根据子窗口关闭后的返回值,来决定父窗口之后的动作
[解决办法]
Application.exit();
[解决办法]
模态窗口的话,父窗口必须得根据子窗口关闭后的返回值,来决定父窗口之后的动作

+1
[解决办法]
要有联系才可以关闭的吧。要不然还不太好办

热点排行