当前位置:编程学习 > C#/ASP.NET >>

关于this.close()和application.exit()

    我学的是C#

    我在第2个和第3个窗体的FormClosing事件那里设了application.exit()之后,方便完全退出程序。但是很奇怪的是,我在非主窗体内写 this.Close()之后,全部窗体都关了,程序也退出了。如果不在FormClosing那里设置Application.Exit()就不会这样。为什么??能不能有能退出程序不占用内存又能让我的程序能跳转窗体的方法?
    还有,如果没有方法,那把后面的窗体加FormClosing事件,然后跳转时用.Hide()隐藏窗体,让客户可以点“X”退出的方案好,还是我在各个窗体都不设FormClosing而在各个窗体加this.close()好?
    
    请各位大侠不吝赐教 --------------------编程问答-------------------- 这个要看你的需要了

根据不同的需要选择不同的写法。 --------------------编程问答--------------------
引用 1 楼 ahsun1987 的回复:
这个要看你的需要了

根据不同的需要选择不同的写法。


一般都不会用Close()方法的,除非是最后的推出程序,过程中一般是不会用的
--------------------编程问答-------------------- 我用的都是application.exit() --------------------编程问答-------------------- 这个可以满足你的要求了:
  new System.Threading.Thread((System.Threading.ThreadStart) delegate
              {
                  Application.Run(new MainForm());
              }).Start();//打开MainForm
                this.Close();//关闭当前窗体 --------------------编程问答--------------------
引用 4 楼 xiongxyt2 的回复:
这个可以满足你的要求了:
  new System.Threading.Thread((System.Threading.ThreadStart) delegate
  {
  Application.Run(new MainForm());
  }).Start();//打开MainForm
  this.Close();//关闭当前窗体
顶 --------------------编程问答-------------------- 因为有this.Close()所以都会执行窗体的FormClosing事件
而你窗体的FormClosing事件中有application.exit()所以全部窗体都关了,程序也退出了
建议你子窗体退出时直接this.Close(),而application.exit()加在主窗体里就行了
--------------------编程问答--------------------  new System.Threading.Thread((System.Threading.ThreadStart) delegate
  {
  Application.Run(new MainForm());
  }).Start();//打开MainForm
  this.Close();//关闭当前窗体 --------------------编程问答--------------------
引用 2 楼 ahsun1987 的回复:
引用 1 楼 ahsun1987 的回复:

这个要看你的需要了

根据不同的需要选择不同的写法。


一般都不会用Close()方法的,除非是最后的推出程序,过程中一般是不会用的

那我是不是选择“把后面的窗体加FormClosing事件,然后跳转时用.Hide()隐藏窗体,让客户可以点‘X’退出”的方案好点?一般的在岗的编程人员是怎样处理这些问题的?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,