using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 父子窗体 { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void 新建ToolStripMenuItem_Click(object sender, EventArgs e) { Child chi = new Child(); CheckChildOpenState(this,chi); } private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) { FirstForm first = new FirstForm(); CheckChildOpenState(this, first); } #region 窗体操作 /// <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; } else { tempChildForm.Close(); } } ChildForm.MdiParent = MdiForm; ChildForm.Show(); } #endregion } } Winform窗体设计 实现任何时候在主容器中存在一个子窗体?Winform窗体设计 实现任何时候在主容器中存在一个子窗体?Winform窗体设计 实现任何时候在主容器中存在一个子窗体?