使用WinForms停止System.Windows.SplashScreen关闭应用程序

本文关键字:应用程序 SplashScreen Windows WinForms 停止 System 使用 | 更新日期: 2023-09-27 17:48:48

我正在使用System.Windows.SplashScreen为我的WinForms应用程序添加启动屏幕(它有很多WPF控件,但"主窗口"仍然是System.Windows.Forms.Form对象)。当启动屏幕关闭时,整个应用程序也会运行。

我能阻止它带走整个应用程序吗?

使用WinForms停止System.Windows.SplashScreen关闭应用程序

是的,执行Application.Run调用很重要。该调用将程序的控制权转移到您指定的任何主窗体。然后程序将一直运行,直到该窗体关闭。如果您不进行该调用,那么Main()函数将保留控制权,当Main()退出时,应用程序将退出。这是由VB.NET IDE在幕后完成的,尽管它可以在"应用程序"选项卡上的"应用程序设置"窗口中被覆盖,您可以在该窗口中指定启动窗体。在C#中,如果指定Windows窗体项目,则此代码通常由代码模板添加,但如果打开空白项目,则不会看到它。希望能有所帮助。

我问这个问题有点太快了——看起来这里的问题在于我是如何开始应用程序的。如果你这样做:

form.ShowDialog();

然后表单的父窗口被设置为启动屏幕,因此当它关闭时,它也会关闭子窗口(在本例中为"表单"),但如果您使用:

System.Windows.Forms.Application.Run(form)

要启动应用程序,则"表单"不是启动屏幕的子项,因此不会与启动屏幕一起关闭。