Formularereignisse für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

Zwischen Visual Basic 6.0 und Visual Basic 2008 gibt es einige Unterschiede hinsichtlich des Verhaltens von Formularereignissen.

Konzeptionelle Unterschiede

Initialize-Ereignis

In Visual Basic 6.0 wird vor dem Laden eines Formulars Code mit dem Initialize-Ereignis ausgeführt.

In Visual Basic 2008 muss dem Formularkonstruktor (Sub New()) nach dem Aufruf von InitializeComponent() Initialisierungscode hinzugefügt werden. Betrachten Sie hierzu das folgende Beispiel:

' 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
Hinweis:

Häufig wird das Initialize-Ereignis dazu verwendet, während des Ladens des Formulars ein Begrüßungsformular anzuzeigen. Visual Basic 2008-Anwendungen haben eine SplashScreen-Eigenschaft, mit der während des Starts der Anwendung automatisch ein Formular angezeigt werden kann. Weitere Informationen finden Sie unter Gewusst wie: Angeben eines Begrüßungsbildschirms für eine Anwendung (Visual Basic).

Terminate-Ereignis

In Visual Basic 6.0 wird nach dem Entladen eines Formulars Code mit dem Terminate-Ereignis ausgeführt.

In Visual Basic 2008 wird das Terminate-Ereignis nicht mehr unterstützt. Terminierungscode muss innerhalb der Dispose-Methode vor dem Aufruf von MyBase.Dispose() ausgeführt werden.

Hinweis:

Die Dispose-Methode wird für das Hauptformular in einer Anwendung automatisch aufgerufen; für alle anderen Formulare müssen Sie sie explizit aufrufen.

Das folgende Beispiel verdeutlicht die Unterschiede:

' 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-Ereignis

In Visual Basic 6.0 verfügt das Unload-Ereignis über ein Cancel-Argument. In Visual Basic 2008 wurde es durch das Closed-Ereignis ersetzt, das kein Cancel-Argument enthält. Wenn beim Entladen ein Abbruch erforderlich ist, müssen Sie stattdessen das Closing-Ereignis verwenden.

Mausereignisse für MDI-Formulare

In Visual Basic 6.0 werden Mausereignisse von MDI-Formularen unterstützt. In Visual Basic 2008 werden die Ereignisse Click, MouseDown, MouseMove und MouseUp für MDI-Formulare nicht mehr unterstützt, da ein MDI-Formular über keinen Clientbereich zum Empfangen von Mausereignissen verfügt.

Siehe auch

Konzepte

Form-Objekt für Visual Basic 6.0-Benutzer

Referenz

Form

Form.Closing