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 事件。