【问题标题】:VB.net working splash screenVB.net 工作启动画面
【发布时间】:2014-06-03 11:57:18
【问题描述】:

所以我一直在努力研究如何让我的启动画面正常工作。当我的程序启动时,我将添加一些检查,并且在一个小徽标旁边有一个我正在更新的进度条。

我的问题是我在 splash_load 中调用的任何代码在我的表单显示之前运行?我从 Windows Forms > Splash Screen 添加了启动画面,并在我的应用程序设置中将其设置为“启动表单”。

现在我正在执行一个简单的 MySQL 连接测试,但在整个子程序完成运行之前我的初始屏幕不会显示?

splash.vb

Public NotInheritable Class splash

    Private Sub splash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        mysql.connectionTest()
    End Sub

End Class

mysql.vb

Public Shared Sub connectionTest()
        Using SQLConnection As New MySqlConnection(My.Settings.mtConnStr)
            Try
                SQLConnection.Open()
                MessageBox.Show("Connection OK!")
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
                Application.Exit()
            Finally
                SQLConnection.Close()
            End Try

        End Using
    End Sub

【问题讨论】:

  • 你可以进入线程:Dim t As Thread t = New Thread(AddressOf Me.connectiontest) t.Start()

标签: vb.net splash-screen onload-event


【解决方案1】:

您的问题是您在 Load 事件中调用 connectionTest 。在该事件完成之前,表格不会显示。您可以将这一行代码移到 Splash_Shown 事件中,它应该在表单加载并可见后处理。

【讨论】:

  • 我将它移到显示的事件中,但现在我只能看到表单背景,并且在连接测试完成之前没有出现任何文本/图像。
  • 您可能还需要将 connectionTest 放在单独的线程中,或者使用 DoEvents(不寒而栗)。使用文本/图像等更新表单并不是一件容易的事情。有关事件触发顺序的一些信息,请参阅msdn.microsoft.com/en-us/library/86faxx0d(v=vs.110).aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 2017-09-17
  • 2021-05-10
相关资源
最近更新 更多