我正在重写我们多年来一直使用的打印运输标签的应用程序,因为在这么多年里,许多程序员已经添加了零碎的东西,并且维护变得越来越难。
在考虑设计选择时,我遇到了在ApplicationEvents.vb中捕获应用程序的StartUp事件,我认为这是该应用程序的一个很好的选择,因为仅当有超过10个标签要打印时才会显示主窗体。时间(如果是,则显示进度条,但大多数情况下,它一次只执行一个标签,因此不需要进度条)。
现在,这是否是一个不错的选择,我不确定,但在玩它时,我发现如果不满足某些条件,则需要从此事件退出应用程序(无效的命令行参数,网络目录未在预期位置找到,以及其他一些标准)。如果出现类似上述情况,我一直未能确定如何退出应用程序。我发现唯一接近的是将StartupEventArgs.Cancel
设置为True
,但是文档说明这只会阻止主窗体加载,如果设置为true,则应将代码指向不同的处理路径。 / p>
在StartUp事件中是否有“正确”的方法退出应用程序?我尝试使用不存在的My.Application.Shutdown
,并RaiseEvent ShutDown()
给出错误“派生类不能引发基类事件。”
此处链接是我用于研究的主要文档(以及链接页面上的相关链接): https://msdn.microsoft.com/en-us/library/t4zch4d2(VS.80).aspx
答案 0 :(得分:1)
您可以使用End
立即终止该进程,请注意:
为防止文件损坏,您可以使用“完成”的子程序。然后终止程序,例如:
Private Sub finishUp()
[..close files, forms, here..]
End
End Sub
我自己做了一个几个月前制作的游戏服务器程序;该程序需要在SQL数据库中注意启动和关闭时间。我让它在一个类似上面的子程序中记录停机时间。
请注意,当您需要程序在任何其他时间关闭时,可以(也可能应该)使用相同的子程序。