form1 my = new form1();
            if (a1)
            {
                a1= false;               
                my.MdiParent = this;
                my.Show();
            }
            else
            {
                my.Activate();
                my.BringToFront();
            
            }
判断只可以打开同一个子窗体,当有了则激活它,可是激活后的窗体不可以显示在最前面,哪位高手指点下呀

解决方案 »

  1.   

    判断只可以打开同一个子窗体,当有了则激活它,可是激活后的窗体不可以显示在最前面,哪位高手指点下呀
    你的描述本来就很矛盾,既然要激活,还不可以在最前面,激活一个窗体,窗体自然在最上面。
    你可以试一下,把else里面的my.Activate()注释了试试
      

  2.   

    你的描述本来就很矛盾,既然要激活,还不可以在最前面  很赞同。   
    注释my.Activate() 并添加 a1= true; 否则关闭窗体后将不显窗体了,
    这样判断显示一个窗体不是最好的方法。          Form1 f1 = null;
            private void button2_Click(object sender, EventArgs e)
            {
              
                if (f1==null ||f1.IsDisposed)
                {
                     f1 = new Form1();
                     f1.Show();
                    
                }
                else
                {
                    f1.Focus();
                }
               }
      

  3.   

    你试试你原来的 这做法是没有激活你的窗体。如果非要激活的话, 那把你当前的窗体设为最前端。form1 my = new form1();
      if (a1)
      {
      a1= false;   
      my.MdiParent = this;
      my.Show();
      }
      else
      {
        a1= true;
        my.BringToFront();
        
      }
      

  4.   

    frmChild f = new frmChild();
    f.Show(this);