我有一个form1和一个form2,当点form1上的按钮里显示form2,当点form2上的按钮时关闭form2;
如果我用form2.Show()的话,关闭时用from2.close();
但再次想显示form2时就出现错误了,请问这是怎么回事呢?我用form2.ShowDialog(this),然后用form2.Dispose();也是同样的错!

解决方案 »

  1.   

    首先向要打开的窗体传入本窗体this,frmmain frm =new frmmain(this);frm .ShowDialog();
    在frmmain添加变量生命和构造函数,private frmmain form;
    public frmmain(frmmain  form)
    {
    InitializeComponent();
    this.form =form;
    this.form .Visible =false;
    }
    最后在closing事件中添加
    private void frmmain_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    this.form.Visible=true;
    }
      

  2.   

    我觉得一个窗口被close后,同时也被Dispose掉了,所以你再调用它就会处错吧。
    不要用Close(),要关闭form2的时候,写Form2.Hide();
    再要显示Form2时,再Show()出来就行了。
      

  3.   

    我要在每次窗体显示时更新窗体中DataGrid的数据(在Load事件中).而用show()和Hide()是不行嘀!
    所以要把它销毁,再构造一次!
      

  4.   


    我要在每次窗体显示时更新窗体中DataGrid的数据(在Load事件中).而用show()和Hide()是不行嘀!
    所以要把它销毁,再构造一次!=============================================================如果开关频繁的话,这么做恐怕不是很有效率.
      

  5.   

    .net编程方面的技术问题, 请加20962976, 有技术牛人, 会给您满意的答复
      

  6.   

    bill024(咖啡熊) 讲的我不是很明白,为什么要这样呢?这样做是不是效率会提高些?