不要在btn1中
Form2  f = new Form2();Form2 f;
btn_click()
{
  if(f!= null)
  {
     f = new Form2();
  }
  f.ShowDialog();}

解决方案 »

  1.   

    if (f != null)
    {
       f = new Form2();
       f.Show();
    }
    但是else的部分怎么写?因为我想在下一次按按钮时还是显示f。
      

  2.   

    if(f!= null)
      {
         f = new Form2();
      }
      f.ShowDialog();
    如果没有创建就创建Show写在if之外
      

  3.   

    只有VB这样的程序才可以直接FORM1.SHOW(),C#先要实例化,
      

  4.   

    brightheroes(闭关(正在修练基本功)) 在方法前提是必需把 
         Form2  f = new Form2();
    声明为全局的。下面我介绍另一个方法:在 Form2 在类中定义一个静态字段:
    class Form2:public Form
    {
        ........
        public static int frmCnt=0;
        ........
    }在事件中只要判断 Form2.frmCnt 的值就行了.
    :)
      

  5.   

    我看还是用ShowDialog好,省事。
      

  6.   

    我觉得楼楼上的是不是反了呀:
    if (f == null)//没有实例,所以实例化
    {
       f = new Form2();
    }
    f.Show();
      

  7.   

    是不是采用模式窗体看需要,都可以的
    最好避免重复的FORM2 FRM = NEW FORM2();
    如此
    Form2 frm = new Form2();
    frm.showdialog();
    frm.dispose();