你把form2  f1=new form2();写到button1_Click事件外面去不行吗?,每次只要fl.show()。

解决方案 »

  1.   

    你的意思是在FORM1上点击按钮后就要打开FORM2吗?
      

  2.   

    如果是MDI窗口,可以用这个方法
    foreach(Form f in this.MdiChildren)
    {
    if (f is Form2)
    {
    f.Focus();
    return;
    }
    else
    f.Close();
    }
      

  3.   

    同意declude() 做法其实如果使用设计器做的,系统自动会处理的,你只要在按钮的单击事件中form2.show()就可以了,不会出现多个窗口的
      

  4.   

    同意declude的做法。
     放在外面就可以了
      

  5.   

    不知道你说的是不是只能有一个Form2显示
    如果是直接用Form2.showdialog()即可保证阿
      

  6.   

    不过Form2.showdialog()为模式窗体 必须关闭以后才能执行其他操作
    如果在打开Form2的同时还可以执行其他操作 那就按  declude地方法咯
      

  7.   

    调用API函数 FindWindow() SetActiveWindow()
      

  8.   

    在打开窗体的load里面,加上第一个窗体.activeform.hide()的属性private void 発form2_Load(object sender, System.EventArgs e)
    {
    form1.ActiveForm.Hide(); }

    private void button2_Click(object sender, System.EventArgs e)
    {
    form1 a =new form1();
    a.Show ();
    }
      

  9.   

    你应该在 Form1 中创建一个引用 Form2 实例的变量:
       private Form2 myForm2; // 也可用 private Form2 myForm2 = new Form2();然后,button 的 Click 处理改为:
    private void button1_Click(object sender, System.EventArgs e)
    {
       if (this.myForm2 == null)
           this.myForm2 = new Form2();
       if (this.myForm2.Visible == false)
           this.myForm2.Show(); // 也可 this.myForm2.Visible = true;
       this.myForm2.Focus();
    }
      

  10.   

    添加字段form2
    private Form2 form2 = new Form2();Onclick
    {
        //模式调用
        form2.ShowDialog(this);    //直接调用
        form2.Show();}
      

  11.   

    你应该在 Form1 中创建一个引用 Form2 实例的变量:
       private Form2 myForm2; 然后,button 的 Click 处理改为:
    private void button1_Click(object sender, System.EventArgs e)
    {
       if (myForm2 == null || myForm2.IsDisposed) myForm2=new Form2();
       myForm2.Show();
    }