Imports System.ComponentModel Imports System.Diagnostics Imports System.Threading Imports System.Globalization Public NotInheritable Class frmSplash Private InitSteps As Integer = 2 Private bw As New BackgroundWorker() Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load lblProductName.Text = My.Application.Info.ProductName lblCopyright.Text = My.Application.Info.Copyright lblVersion.Text = String.Format("Version {0}", My.Application.Info.Version.ToString) Me.BringToFront() InitProgram() End Sub Private Sub InitProgram() bw.WorkerReportsProgress = True AddHandler bw.DoWork, AddressOf bw_DoWork AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted bw.RunWorkerAsync() End Sub Private Function CalcProgress(_step As Integer) Return _step * (100 / InitSteps) End Function Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) bw.ReportProgress(CalcProgress(1), "Connecting to service..") Dim Init = New ClassInit() System.Threading.Thread.Sleep(600) bw.ReportProgress(CalcProgress(2), "Initialize User Settings") ' Init.InitUserConfig() System.Threading.Thread.Sleep(600) End Sub Private Sub bw_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) pbStatus.Value = e.ProgressPercentage lblStatus.Text = e.UserState.ToString() End Sub Private Sub bw_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) ' Bei Fehler MsgBox anzeigen und Programm beenden If e.Error IsNot Nothing Then 'ClassLogger.Add("Unexpected error in Initializing application....") MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Unexpected error in Initializing application") Application.Exit() End If ' Wenn kein Fehler, Splashscreen schließen Me.Close() End Sub End Class