但一定不能用showdialog得方法!
如何进行?

解决方案 »

  1.   

    给Form1添加一个类成员变量:
    private Form2 frm;
    form1_button1_click()
    {
       if(frm==null)
       {
           frm=new Form2();
           frm.Show();
        }
        else
        {
            frm.Activate();
         }
    }
      

  2.   

    呵,谢谢storm97, 我也正想着怎么解决这个问题。
      

  3.   

    class Form1 : Form
    {
      public Form2 form;  
      button1_Click(object sender,EventArgs e)
     {
       if (form == null)
         form = new Form2(this);
       form2.show();
     }}class Form2 :Form
    {
    Form1 main;
    public Form2(Form1 thMain)
    {
       main = thMain;
    }private void OnClose(...)
    {
      main.form = null;
    }}
      

  4.   

    form2 关闭的时候记得把form1的那个变量设为null
      

  5.   

    可是这样,如果窗口关闭后就再也打不开了呀,除非你在from2中修改了from1中frm为空!!
      

  6.   

    只判断 null 还不行,还要判断是不是Disposed
      

  7.   

    不用这样吧...把 form2 的 visible 设为false,然后button1的每次点击都是让form2.visible为true,
    至于 form2 的close是把form2.visible设为false
      

  8.   

    1,将该form2 的实例化发生在过程外,比如放在 button_click 外面
    2,form2 关闭时直接 this.hide 而不要 .Dispose