just try
if (f1 == null || f1.IsDisposed)
{
  //your work
}

解决方案 »

  1.   

    frm == null 只有在第一次打开前才会是这样,打开后就是 new frm() 了。所以楼上的正解
      

  2.   

    Main代码里面写 bool ret;
                    Mutex mutex = new Mutex(true, Application.ProductName, out ret);                if (ret)
                    {                }
                    else
                    {
                        MsgBox.AlertStop("只能运行一个DotNetHelper实例。");
                    }
      

  3.   

    Metux可以控制
    另外你打开一个FORM 的时候 边力一下打开的FORM  BY NAME (或者其它) 来判断也可以实现.