Form 事件(针对 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 属性,该属性可用于在应用程序启动时自动显示窗体。有关更多信息,请参见 如何:为应用程序指定初始屏幕 (Visual Basic)

Terminate 事件

在 Visual Basic 6.0 中,Terminate 事件用于在卸载窗体后执行代码。

在 Visual Basic 2008 中,不再支持 Terminate 事件。终止代码必须在调用 MyBase.Dispose() 前在 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 中该事件由不带 Cancel 参数的 Closed 事件取代。如果需要在卸载过程中取消,请改用 Closing 事件。

MDI 窗体的鼠标事件

在 Visual Basic 6.0 中,MDI 窗体支持鼠标事件。在 Visual Basic 2008 中,因为 MDI 窗体没有可接收鼠标事件的工作区,所以 MDI 窗体不再支持 Click、MouseDown、MouseMove 和 MouseUp 事件。

请参见

概念

窗体对象(针对 Visual Basic 6.0 用户)

参考

Form

Form.Closing