首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VB6 啟動畫面載入控件:Splash Form + 進度條異步初始化模式

     編輯:程式設計疑難解答

標準做法

  1. 創建一個 Splash Form (Form_Splash),放置 ProgressBar、Label 顯示進度。
  2. 在 Sub Main 中:

Sub Main()
    Load Form_Splash
    Form_Splash.Show vbModal  ' 模態顯示,阻塞主線程
    ' 在 Form_Splash 的 Form_Load 或 Timer 事件中異步初始化主窗體控件
    ' 更新 ProgressBar
    Unload Form_Splash
    Load Form_Main
    Form_Main.Show
End Sub

Form_Splash 關鍵代碼


Private Sub Form_Load()
    ' 啟動初始化定時器,避免界面凍結
    Timer1.Interval = 100
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Static step As Integer
    step = step + 1
    Select Case step
        Case 1: lblStatus.Caption = "正在載入數據庫連接..." : InitDatabase
        Case 2: lblStatus.Caption = "正在載入第三方控件..." : LoadOCXControls
        Case 3: lblStatus.Caption = "正在讀取配置..." : LoadConfig
        Case 4: 
            Timer1.Enabled = False
            Me.Hide ' 隱藏啟動畫面,返回 Main 繼續執行
    End Select
    ProgressBar1.Value = step * 25
End Sub

判斷控件加載成功

  • 每個初始化函數(InitDatabase 等)返回 Boolean 或拋錯誤。
  • 若失敗,在 Splash 顯示錯誤訊息,記錄日誌,End 程序或重試。
  • OCX/ActiveX 控件加載可用 On Error Resume Next 捕獲 Err.Number 判斷。

注意

  • VB6 單線程,耗時操作必須用 DoEvents 或定時器分步,否則 Splash 界面會凍結無法繪製進度條。
  • 現代開發建議遷移至 VB.NET / C#,使用 Task.Run + IProgress 實現真正異步載入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved