C# winform 程序,    运行form1窗体 时 打开form2窗体,请问怎么在打开form2窗体的同时关闭form1窗体?
form1窗体中的代码
form2 f2=new form2();
f2.show();fomr1是主窗体,form2是子窗体,我需要打开子窗体的同时关闭主窗体,代码如何实现???请大家指点下谢谢!

解决方案 »

  1.   

    form2.open();
    form1.close();
    这样不可以吗? 我也不是很清楚winform的 你试试吧
      

  2.   

    不关闭可以不,你可以将主窗体隐藏啊,那样岂不是更好,
    如果你非要关闭的话,你可以在子窗体弹出后直接关闭主窗体。this。close()就好了么。
      

  3.   

    把主窗体都干掉了,哪还有子窗体存在可能,主窗体关了,相当于程序退出了,子窗体也就没了,你可以把主窗体隐藏  this.Hide();
      

  4.   

    new System.Threading.Thread((System.Threading.ThreadStart)delegate
    {
        Application.Run(new Form());
    }).Start();
    this.Close();语法糖(1) -- 打开新窗体,关闭入口窗体的最简化方法
      

  5.   

    如果 使用this.Hide();  主窗体和子窗体 都隐藏了
      

  6.   

    问题解决了吗?使用this.Hide(); 主窗体和子窗体 都隐藏了
      

  7.   

    form1窗体中的代码
    form2 f2=new form2();
    f2.show();这样可以叫做form2是form1的子窗体吗?
    我一直认为父窗体和子窗体是相对于MDI而言的,或明确指出窗体父母是谁的。
    ++
      

  8.   

    这个不是主窗体和子窗体的问题 - -
    5楼的可行·
    你也可以在Program的Main函数中来实现。
      

  9.   

    主窗体是整个程序的主干,其他的所有操作都是基于这个主干的,主窗体关闭,就是运行了application.exit的操作,应用进程关闭。
      

  10.   

    主窗体关闭的话,程序就结束了。
    其实可以可以在form2里加一个带参的构造函数。
    public form2(form1 f)
    拿到后想干什么都行了。
    不过这样会影响结构 。  慎用
      

  11.   

    我晕主窗体是主线程,关闭它,全都关闭了!。你把子窗体在子线程new出来。
    反正一条,绝对没法做到把主窗体给关闭了。你换思路做。
      

  12.   

    #region close_show_form public  void close_show_form(Form frm) 

    Form[] MdiChilds = this.MdiChildren; 
    if (MdiChilds.Length == 1) 

    MdiChilds[0].Close(); 

    frm.MdiParent = this; 
    frm.Top  = 0;
    frm.Left = 0;

    frm.Show(); 
    } #endregion
      

  13.   

    form2=new form2(form1对象)
    然后在form2的initialComponets函数后以Owner属性获取主窗体对象form
    调用form.Hide();
      

  14.   

    主窗体 Hide()应该就可以的