form1上有一个button1,点击弹出form2
现在想要达到这样的效果:在form2没关闭之前再点击button1使form2成为当前活动窗口(保证只有一个form2的实例),form2关闭之后点击button1就重新初始化form2.请问在vs.net2005上怎么实现?

解决方案 »

  1.   

    修改form2,用单键模式就可以了!
      

  2.   

    修改form2,用单键模式就可以了!
    具体是哪个属性用form2.ShowDialog()的话在form2没关闭之前就不能返回form1了这样写的话每次点击button1都会新建一个form2
     private void button1_Click(object sender, EventArgs e)
            {            Form f2 = new Form2();
                f2.Show();
                          
                }
      

  3.   

    在new Form2的之前,定义的form2的变量放在全局,在button1_Click事件下,先判断fom2的变量是否为空,不空的话就直接show,或者close 和Dispose 一下,再new 一个新的Form2.
    如:
    private Form2 m_Form;private void button1_Click(object sender, EventArgs e)
    {
    if( m_Form!=null)
    {
                                  m_Form.Show();
                                  return;
                                  //或者
    //m_Form.Close();
    //m_Form.Dispose();
    }
    m_Form= new Form2();
                                m_Form.Show();
    }
      

  4.   

    hsghxm(呵本) 正解
    前面几个朋友的方法都不行,因为ShowDialog()使form2变成了模式窗口,如果不关闭这个窗口根据无法再点击form1上的按钮
      

  5.   

    看看这个
            First A = new First();
            private void button1_Click(object sender, EventArgs e)
            {
                if (!A.IsDisposed)
                {
                    A.Show();
                    A.Focus();
                }
                else
                {
                    A = new First();
                    A.Show();
                }
            }
      

  6.   

    我的才是正解,嘿嘿  First是个窗体