uid*_*uid 0 c# winforms multiple-forms
我有一个带有两个表单的表单应用程序.在第二种形式中,我在右下角有x按钮.当我单击此按钮关闭应用程序时,我如何制作,而不仅仅是隐藏Form2窗口?
首先你需要抓住这个事件.为此,请在子窗体的FormClosing事件上设置事件处理程序.
然后有几个选项:
"蛮力"终止使用Process.Kill().
这将终止进程而不让任何清理代码运行.它具有通过任务管理器结束进程的效果.你可以使用当前的流程Process.GetCurrentProcess.使用这样:
Process.GetCurrentProcess().Kill();
Run Code Online (Sandbox Code Playgroud)使用关闭所有窗户的"温和"终止Application.Exit().
这将关闭所有消息泵和窗口,但会在允许正常清理代码运行的同时关闭它们.但是,它不能保证进程终止,例如,如果在完成消息循环后,forgound线程仍处于活动状态.使用这样:
Application.Exit();
Run Code Online (Sandbox Code Playgroud)将意图传达给主线程.
这是一个设计解决方案,而不是你放在某处的"代码行".这个想法是2个类(2个表单)有一些通信机制(通过消息,事件或任何你认为合适的,可能已经使用的),并且子表单通知用户想要退出应用程序的父表单.然后由主表单清理所有表单,关闭所有表单(本身和其他表单),并正常退出该进程.这是最干净和首选的方法,但需要适当的设计和更多的代码.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |