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

VB.NET WinForms调用Form.Show后应用无异常自动关闭问题求助

问题根因

VB.NET WinForms应用默认的关闭模式为当启动窗体关闭时退出应用。你的代码中将FormDataLoad设置为了启动主窗体,当你点击关闭按钮触发FormDataLoad.Close()后,应用检测到启动主窗体已关闭,就会自动启动正常关闭流程,哪怕你后续打开了FormOverview,也会被应用的退出逻辑连带关闭。

解决方案

方案1:修改应用关闭模式(最简单)

  1. 双击项目中的My Project打开项目属性页
  2. 切换到「应用程序」标签页
  3. 找到「关闭模式」下拉选项,将默认的当启动窗体关闭时修改为当最后一个窗体关闭时
  4. 保存修改后重新编译运行即可。

方案2:启动时就指定FormOverview为主窗体,启动阶段先显示加载窗体

这种适合需要严格控制主窗体生命周期的场景,修改Startup事件逻辑如下:

Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
    If String.IsNullOrEmpty(My.Settings.TheCompany) Then
        MainForm = FormConnection
        FormConnection.Show()
    Else
        ' 主窗体指定为FormOverview
        MainForm = FormOverview
        ' 先显示加载窗体,阻塞等待加载完成
        FormDataLoad.ShowDialog()
        ' 加载完成后再显示主窗体
        FormOverview.Show()
    End If
End Sub

同时移除FormDataLoad的FormClosed事件中调用FormOverview.Show()的代码即可,加载完成后直接调用FormDataLoad.Close()关闭加载弹窗就会回到Startup逻辑继续执行主窗体显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:57:02