所有窗口都是用
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为止。
------解决方案--------------------
------解决方案--------------------
模态窗口的话,父窗口必须得根据子窗口关闭后的返回值,来决定父窗口之后的动作
------解决方案--------------------
Application.exit();
------解决方案--------------------
模态窗口的话,父窗口必须得根据子窗口关闭后的返回值,来决定父窗口之后的动作
+1
------解决方案--------------------
要有联系才可以关闭的吧。要不然还不太好办