如何判断一个窗体是否打开?急.....
我在窗体A按钮Button1上加上如下语句,实现打开B窗体 
 B   b=new   B(this); 
 if   (b   ==   null   ||   b.IsDisposed) 
 { 
          b.Show(); 
 } 
 else 
 { 
          b.Focus(); 
 }   
 现在点击Button1怎么都无法打开B窗体,请问是什么原因?
------解决方案--------------------你采用的是什么结构MDI? 
 new实例时有错
------解决方案--------------------在主窗体frmMain的初始化中定义一个公共变量(boolean)isdoing,并设置为false,    
   然后再添加这样的代码     
             if(not   isdoing)    
                   {    
                         ss.show();    
                         isdoing=true;    
                   }          
     在ss中的Closed事件中写上这样一个代码    
             frmMain.isdoing=false;
------解决方案--------------------你可以做一个全局变量,第一次可以打开B窗口.并对全局变量赋值.在点那个按钮时判断那个全局变量.在B窗口关闭时也要修改全局变量.
------解决方案--------------------当你new B 时,窗体就使新建的一个窗体,b==null和b.IsDisposed都是假的,所以就只执行b.Focus 
 ,可是这时你窗体还没有show出来,所以就看不到了。试着在b.Focus前加上b.Show()试一下
------解决方案--------------------if (f2.IsDisposed) 
             { 
                 f2 = new Form2();                 
             }  
             f2.Show();
------解决方案--------------------Form2  f2 = new Form2(); 
         private void button1_Click(object sender, EventArgs e) 
         { 
             if (f2.IsDisposed) 
             { 
                 f2 = new Form2();                 
             }  
             f2.Show();   
         }   
 快给我分吧 
------解决方案--------------------B b = null;   
 private void button1_Click(object sender, EventArgs e) 
 { 
     if (b == null || b.IsDisposed) 
     { 
         b= new B(this); 
         b.Show(); 
     } 
     else 
     { 
         b.Active(); 
     } 
 }
------解决方案--------------------B b=new B(this); 
 你在这里创建了一个B的实例b,但是没有Show();此时if条件为false,走else分支,你没有Show就b.Focus();当然不会出现   
 你这样写if条件语句一点意义都没有,可以按我上面的方法来写
------解决方案--------------------朝  失误了 
 给lxcnn(过客)吧
------解决方案--------------------学习..