假如有一个工程test
在form1窗体上点了button按钮弹出form2窗体,然后form1窗体关闭button下的代码form2 f2 = new form2();
f2.show();
this.hide();问题:这样虽然实现了功能,但是我关闭form2窗体后,任务管理器里还有进程没结束,怎么办?我是直接点的窗体右上角的关闭。

解决方案 »

  1.   

    下次要运行就必须结束任务管理器里的test.exe进程
      

  2.   

    你只是隐藏了form2,并没有结束进程啊。
    form2 f2 = new form2();
    f2.show();
    这样并不意味着启动了一个新的进程。
      

  3.   

    要想强制突出当前程序要用:System.Environment.Exit(int exitcode)方法;该方法:终止当前进程并为基础操作系统提供指定的退出代码。
      

  4.   

    这样不会产生一个新的进程,主要是我关闭form2窗体后,任务管理器里的test.exe进程没结束
      

  5.   


    System.Environment.Exit(0);这样应该就可以。
      

  6.   

    可以在form2重写OnFormClosing事件        protected override void OnFormClosing(FormClosingEventArgs e)
            {
                foreach (Form frm in Application.OpenForms)
                {
                    if (frm.Name == "Form1")
                    {
                        frm.Close();
                    }
                }
            }
      

  7.   

    form2 formclosing 事件中
    Application.Exit();form1 调用form2窗体 并不是新进程。理解不够透彻啊
      

  8.   

    补充
    formclosing事件
    this.Dispose();
      

  9.   

    form2的formclosed事件中添加application.exit();