我在窗体A按钮Button1上加上如下语句,实现打开B窗体
B b=new B(this);
if (b == null || b.IsDisposed)
{
   b.Show();
}
else
{
   b.Focus();
}现在点击Button1怎么都无法打开B窗体,请问是什么原因?

解决方案 »

  1.   

    你采用的是什么结构MDI?
    new实例时有错
      

  2.   

    在主窗体frmMain的初始化中定义一个公共变量(boolean)isdoing,并设置为false,   
      然后再添加这样的代码    
                if(not   isdoing)   
                      {   
                            ss.show();   
                            isdoing=true;   
                      }   
        
        在ss中的Closed事件中写上这样一个代码   
                frmMain.isdoing=false;
      

  3.   

    当你new B 时,窗体就使新建的一个窗体,b==null和b.IsDisposed都是假的,所以就只执行b.Focus
    ,可是这时你窗体还没有show出来,所以就看不到了。试着在b.Focus前加上b.Show()试一下
      

  4.   

    if (f2.IsDisposed)
                {
                    f2 = new Form2();
                  
                } 
                f2.Show();
      

  5.   

    Form2  f2 = new Form2();
            private void button1_Click(object sender, EventArgs e)
            {
                if (f2.IsDisposed)
                {
                    f2 = new Form2();
                  
                } 
                f2.Show();        }快给我分吧
      

  6.   

    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();
        }
    }
      

  7.   

    B b=new B(this);
    你在这里创建了一个B的实例b,但是没有Show();此时if条件为false,走else分支,你没有Show就b.Focus();当然不会出现你这样写if条件语句一点意义都没有,可以按我上面的方法来写
      

  8.   

    朝  失误了
    给lxcnn(过客)吧