C# 子窗体相互关闭问题

来源:百度知道 编辑:UC知道 时间:2024/09/26 20:22:59
Form1是主窗体,Form2和Form3是子窗体,Form2怎样关闭已经打开的Form3的窗体啊?谢谢大侠们啦~
在线等哦,谢谢啦,急用~

换别的方法吧 好像是关不了 Form2.Close(); 只能关闭当前窗体吧

如Form2 from2=new form2();
from2.ShowDialog();
这时候打开Form2 后就不能在操作Form1了,除非关闭Form2。
如果用from2.Show()这时候打开Form2 后就能在操作Form1了。
估计你用的是from2.Show()才会导致你说的问题。

解决方案1.用from2.ShowDialog();
2.在from2里面Load时候关闭Form3,这么做不好,因为你不知道先前开了几个窗体,如果有10个窗体,你要挨个判断的...建议用方法1.大概就是在Form2加个Form类型静态属性,然后在初始化Form3 时候赋值为Form3的实例.
然后再在from2 load时候调用form3.Close();

如果不明白发百度消息给我

给form2添加一个公有变量:
public Form3 f3;
在Form1中的代码:
Form2 f2=new Form2();
Form3 f3=new Form3();
……//做一些你自己的初始化f2和f3的工作
f2.f3=f3;
f2.Show();
f3.Show();
然后在form2中用代码
f3.close();
就可以把form3关闭;

用MDI窗口就可以啦