方法一:
/// <summary>
/// 控制只弹出一个子窗体
/// </summary>
/// <param name="type">子窗体类型</param>
public void FilmShow(Type type)
{
Form[] f = this.MdiChildren;
foreach (Form form in f)
{
if (form.GetType().Name == type.Name)
{
form.Dock = DockStyle.Fill;
form.Activate();
return;
}
}
Assembly a = Assembly.GetExecutingAssembly();
Form ff = (Form)a.CreateInstance(type.FullName);
ff.MdiParent = this;
ff.Dock = DockStyle.Fill;
ff.Show();
}
方法二:
public bool checkchildFrmExist(string childFrmName)
{
foreach (Form childFrm in this.MdiChildren)
{
if (childFrm.Text.ToString() == childFrmName)
{
if (childFrm.WindowState == FormWindowState.Minimized)
{
childFrm.WindowState = FormWindowState.Normal;
}
childFrm.Activate();
return true;
}
}
return false;
}
模式窗体的控制:
/// <summary>
/// 该窗体以模式窗体形式弹出
/// </summary>
/// <param name="type"></param>
public void FilmShowDialog(Type type)
{
Form[] f = this.MdiChildren;
foreach (Form form in f)
{
if (form.GetType().Name == type.Name)
{
form.Activate();
return;
}
}
Assembly a = Assembly.GetExecutingAssembly();
Form ff = (Form)a.CreateInstance(type.FullName);
ff.ShowDialog();
}