Visual Basic 6.0 使用者可用的表單事件

更新:2007 年 11 月

Visual Basic 6.0 和 Visual Basic 2008 在表單事件行為上會有一些差異。

概念上的差異

Initialize 事件

在 Visual Basic 6.0 中,Initialize 事件可用來在表單載入之前,先執行程式碼。

在 Visual Basic 2008 中,初始化程式碼必須在呼叫 InitializeComponent() 之後,才能加入至表單建構函式 (Sub New()) 中,如下列範例所示:

' Visual Basic 6.0 
Private Sub Form_Initialize()
    MsgBox("The form is loading")
End Sub

 

' Visual Basic .NET 
Public Sub New()
    ' This call is required by the Windows Form Designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
    MsgBox("The form is loading")
End Sub
注意事項:

Initialize 事件的常見用法是顯示「開頭顯示」表單,以便於載入表單時顯示資訊。Visual Basic 2008 應用程式具有 SplashScreen 屬性,可用來在應用程式啟動期間自動顯示表單。如需詳細資訊,請參閱 HOW TO:指定應用程式的開頭顯示畫面 (Visual Basic)

Terminate 事件

在 Visual Basic 6.0 中,Terminate 事件是用來在表單卸載之後執行程式碼。

Visual Basic 2008 不再支援 Terminate 事件。終止程式碼 (Termination code) 必須執行於 Dispose 方法內,再呼叫 MyBase.Dispose()。

注意事項:

在應用程式中,會自動為主要表單呼叫 Dispose 方法,但您必須為其他表單明確地呼叫此方法。

下列範例說明了其中的差異。

' Visual Basic 6.0 
Private Sub Form_Terminate()
    MsgBox "The form was terminated"
End Sub

 

' Visual Basic .NET 
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing AndAlso components IsNot Nothing Then
        MsgBox("The form was terminated")
        components.Dispose()
    End If
    MyBase.Dispose(disposing)
End Sub

Unload 事件

在 Visual Basic 6.0 中,Unload 事件具有 Cancel 引數;在 Visual Basic 2008 中,則由 Closed 事件加以取代,其中並無 Cancel 引數。如果您需要在卸載過程中取消,請改用 Closing 事件。

MDI 表單的滑鼠事件

在 Visual Basic 6.0 中,MDI 表單可支援滑鼠事件。而在 Visual Basic 2008 中,因為 MDI 表單已無工作區 (Client Area) 可接收滑鼠事件,所以 MDI 表單不再支援 Click、MouseDown、MouseMove 和 MouseUp 事件。

請參閱

概念

Visual Basic 6.0 使用者可用的 Form 物件

參考

Form

Form.Closing