private void  openForm(Form f)
{     if (f is Form2 ) 

    Form2 mf=(Form2) f;
    if (mf.WindowState==FormWindowState.Minimized)  //是否最小化 
    { 
           mf.WindowState=FormWindowState.Normal;            } 
    mf.BringToFront();                              //窗体到最上层
    return; 


   }

Form2 frm =new Form2();
frm.MdiParent=this;
frm.Show();
}

解决方案 »

  1.   

    上面的不行,何况这句里的Form2  这么处理
    if (f is Form2 ) 
      

  2.   

    private void  openForm(Form2 f)()可以  
    if (f.GetType().ToString() == "(form2的namespace).Form2")
      

  3.   

    using System.Reflection;
    private void  openForm(string typeName)
    { Type type = null;
    try
    {
    type = Type.GetType(typeName);
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message,"出错了!",MessageBoxButtons.OK,MessageBoxIcon.Error);
    } Form mForm = (Form)System.Activator.CreateInstance(type); foreach (Form f in MdiChildren) 

    if (f.GetType() ==mForm.GetType() ) 

    mForm = f;
    if (mForm.WindowState==FormWindowState.Minimized)  //是否最小化 

    mForm.WindowState=FormWindowState.Normal;            } 
    mForm.BringToFront();                              //窗体到最上层
    return; 


    }

    Form frm = (Form)System.Activator.CreateInstance(type);
    frm.MdiParent=this;
    frm.Show();
    }不过,调用时,要用:this.openForm("命名空间.Form2");