判断一下,如果存在就show否则new ,
foreach(Form f in this.MdiChildren)
{
if (f is Form2)
{
f.Focus();
f.WindowState = FormWindowState.Maximized;
return;
}
} Form2 frmrp = new Form2();
frmrp .WindowState = FormWindowState.Maximized;
frmrp.MdiParent = this;
frmrp.Show();

解决方案 »

  1.   

    snof的方法比較通用.
    針對你的具體情況: 用菜單項
    可以設置menuitem的checked狀態,在打開窗體時設為true, 每次click時檢測一下此菜單項的checked狀態, 如果true則不用再次打開
      

  2.   

    同意雪狼不过还有其它的方法如
    你定义一个具体窗体显示时
    form1 f;
    在点击菜单事件时,写
    if(f==null)
    {f=new form();
    f.show();}
    else
    {
    f.show();
    }
      

  3.   

    将窗体定义成类成员.
    class ssdfs
    {
      private Form1 ff;  public ssss()
      {
        if (ff!=null)
    {
       ff = new Form1();
       ff.Show();
    }
      }
    }
      

  4.   

    两种方法:
    第一,如果此窗体存在,则再次点击按钮是将其激活;如果不存在则new出.
    第二,改变模式,如ShowDialog().