日期:2014-05-18  浏览次数:20740 次

C#主窗口中子窗口的关闭与打开
我写了一个C#的程序,打开时主窗口中默认打开一个子窗口,想要打开其他窗口并把已经打开的所有子窗口关闭,怎么操作啊?

------解决方案--------------------
class MainForm : Form
{
private Form currentChildForm = null;

private void ShowForm2()
{
if(currentChildForm != null)
currentChildForm.Close();

Form2 f2 = new Form2();
currentChildForm = f2;
f2.Show();
}
}
------解决方案--------------------
foreach (Form childForm this.MdiChildren)
{
childForm.Close();
}
Form newForm = new Form();
newForm.MdiParent = this;
newForm.Show();
------解决方案--------------------
#region MDI子窗体实例化一次
/// <summary>
/// 名称:CheckChildOpenState
/// 功能:用子窗体的Name进行判断是否已实例化,如果存在则将他激活
/// </summary>
/// <param name="MdiForm">容器窗体</param>
/// <param name="ChildForm">子窗体</param>
public static void CheckChildOpenState(Form MdiForm, Form ChildForm)
{
foreach (Form tempChildForm in MdiForm.MdiChildren)
{
if (tempChildForm.Name == ChildForm.Name.ToString())
{
if (tempChildForm.WindowState == FormWindowState.Minimized)
{
tempChildForm.WindowState = FormWindowState.Normal;
}
tempChildForm.Activate();
return;
}
}
ChildForm.MdiParent = MdiForm;
ChildForm.Show();
}
#endregion

看看这个方法,你可能会改变你的想法。