MainForm关闭之后保持程序运行
2004-11-07 20:28
483 查看
WinForm程序一般都是从一个Form的static void Main()开始运行,暂且称此Form为MainForm。Main函数的一般写法是:
这样的写法有一个问题:如果需要从Form1中调出另一个Form,必须保持Form1不能关闭,比如在一个Button的Click中调出Form2:
可以看到两个Form同时显示在屏幕上,如果改成:
那么执行到this.Close()时,整个应用程序将终止运行,Form2也会自动关闭。
如果需要仅仅显示Form2,除了将Form1.Close改为Form1.Hide之外,还有一种办法,就是将Main改为:
这样Form1中的this.Close()就不会导致应用程序终止运行了,而且不需要Form1时,可以真正Close从而释放一些资源。不过,应用程序的终止就不要在其他地方控制了,比如在Form2的Closed事件中:
在多文档应用程序中,往往需要在内部维护一个当前活动Form的列表,最后一个Form关闭时,再调用Application.Exit。
static void Main() { Application.Run(new Form1()); } |
private void button1_Click(object sender, System.EventArgs e) { (new Form2()).Show(); } |
private void button1_Click(object sender, System.EventArgs e) { (new Form2()).Show(); this.Close(); } |
如果需要仅仅显示Form2,除了将Form1.Close改为Form1.Hide之外,还有一种办法,就是将Main改为:
static void Main() { (new Form1()).Show(); Application.Run(); // 启动独立的应用程序线程 } |
private void Form2_Closed(object sender, System.EventArgs e) { Application.Exit(); } |
相关文章推荐
- MainForm关闭之后保持程序运行
- MainForm关闭之后保持程序运行
- opencv:程序运行完保持dos窗口不关闭
- 关闭Chrome安装第三方插件之后反复提示“请停用以开发者模式运行的扩展程序”
- 关闭shell后如何保持程序继续运行
- 一个简单的可以运行程序之后自动关闭的批处理命令
- Android如何保持程序一直运行 (让屏幕常亮且停在当前程序界面)
- 为何远程桌面断开后原运行程序有时关闭有时依然存在?
- VS2013+OpenGL环境搭建好之后运行第一个程序出错
- Android按返回键,程序进入后台运行,不关闭程序,finishAcrivity
- ssh 关闭后仍保持当前运行的进程
- bat脚本调用Android中bash脚本,关闭bat后如何保持bash继续运行
- linux查看指定程序是否运行及关闭
- iOS 程序后台运行保持程序后台长时间运行
- 内存不足,无法运行Microsoft Excel 请关闭其他相应程序再试怎么办
- 利用QProcess::finished信号(signal)来保持目标程序始终运行
- 让java程序在后台一直执行(例如putty关闭后后台程序继续运行)
- [置顶] Linux 下后台运行程序,查看和关闭后台运行程序
- 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭
- 实现关闭ssh继续运行程序--nohup和screen