You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022 VB.NET中免责声明窗体无法正常停留问题求助

VB.NET WinForm闪屏后免责声明窗体无法停留的解决方法

问题根源

你的闪屏窗体是程序的启动窗体,当执行Me.Close()时,应用程序的主线程会随启动窗体的关闭而终止,导致后续弹出的免责声明窗体被强制关闭,无法正常停留。

解决方案一:调整代码执行顺序

修改闪屏窗体中Timer的Tick事件代码,先显示免责声明对话框,待用户操作完成后再关闭闪屏窗体:

Private Sub timerSplash_Tick(sender As Object, e As EventArgs) Handles timerSplash.Tick
    timerSplash.Stop()

    Dim disclaimerForm As New Disclaimer()
    ' 显示免责声明,直到用户手动关闭
    disclaimerForm.ShowDialog()
    
    ' 关闭闪屏窗体,触发程序终止
    Me.Close()
End Sub

解决方案二:切换启动窗体

将免责声明窗体设为启动窗体,在其加载时先显示闪屏:

  1. 在项目属性中,设置Disclaimer为启动窗体
  2. 在Disclaimer窗体的Load事件中添加代码:
Private Sub Disclaimer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.Hide()
    Dim splashForm As New Splash()
    splashForm.Show()
    
    ' 等待3秒后关闭闪屏
    System.Threading.Thread.Sleep(3000)
    
    splashForm.Close()
    Me.Show()
End Sub

原理说明

Windows Forms应用程序的生命周期由启动窗体控制,当启动窗体关闭时,Application.Run()方法结束,所有关联的窗体都会被关闭。原代码中先关闭启动窗体(闪屏),再弹出免责声明,此时应用程序已进入终止流程,因此免责声明无法正常显示。

内容的提问来源于stack exchange,提问作者Athang Tikekar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:59:53