Freigeben über


Erweitern des Visual Basic-Anwendungsmodells

Aktualisiert: November 2007

Sie können durch Überschreiben der Overridable-Member der WindowsFormsApplicationBase-Klasse dem Anwendungsmodell Funktionen hinzufügen. Mit dieser Technik können Sie das Verhalten des Anwendungsmodells anpassen und Aufrufe eigener Methoden beim Starten und Herunterfahren der Anwendung hinzufügen.

Visuelle Übersicht über das Anwendungsmodell

In diesem Abschnitt wird die Sequenz der Funktionsaufrufe im Visual Basic-Anwendungsmodell visuell veranschaulicht. Im nächsten Abschnitt wird ausführlich der Zweck der einzelnen Funktionen beschrieben.

In der folgenden Grafik wird die Aufrufsequenz des Anwendungsmodells in einer normalen Visual Basic-Windows Forms-Anwendung gezeigt. Die Sequenz beginnt, wenn die Sub Main-Prozedur die Run-Methode aufruft.

Das Visual Basic-Anwendungsmodell enthält auch das StartupNextInstance-Ereignis und das UnhandledException-Ereignis. In der folgenden Grafik wird der Mechanismus zum Auslösen dieser Ereignisse gezeigt.

Überschreiben der Basismethoden

Die My.Application.Run-Methode definiert die Reihenfolge, in der die Application-Methoden ausgeführt werden. Standardmäßig ruft die Sub Main-Prozedur für eine Windows Forms-Anwendung die Run-Methode auf.

Wenn es sich bei der Anwendung um eine normale Anwendung (Mehrfachinstanzanwendung) oder die erste Instanz einer Einzelinstanzanwendung handelt, führt die Run-Methode die Overridable-Methoden in der folgenden Reihenfolge aus:

  1. OnInitialize. Standardmäßig legt diese Methode die visuellen Stile, die Textanzeigestile und den aktuellen Prinzipal für den Hauptthread der Anwendung fest (falls die Anwendung Windows-Authentifizierung verwendet) und ruft ShowSplashScreen auf, wenn weder /nosplash noch -nosplash als Befehlszeilenargument verwendet wurde.

    Wenn diese Funktion False zurückgibt, wird das Starten der Anwendung abgebrochen. Dies kann in Situationen nützlich sein, in denen die Anwendung nicht ausgeführt werden soll.

    Die OnInitialize-Methode ruft die folgenden Methoden auf:

    1. ShowSplashScreen. Ermittelt, ob ein Begrüßungsbildschirm für die Anwendung definiert ist, und zeigt diesen ggf. mit einem getrennten Thread an.

      Die ShowSplashScreen-Methode enthält den Code, mit dem der Begrüßungsbildschirm für mindestens die Anzahl von Millisekunden angezeigt wird, die von der MinimumSplashScreenDisplayTime-Eigenschaft angegeben werden. Um diese Funktionalität zu nutzen, müssen Sie der Anwendung mit dem Projekt-Designer (der die My.Application.MinimumSplashScreenDisplayTime auf zwei Sekunden festlegt) den Begrüßungsbildschirm hinzufügen. Sie können stattdessen auch die My.Application.MinimumSplashScreenDisplayTime-Eigenschaft in einer Methode festlegen, die die OnInitialize-Methode oder die OnCreateSplashScreen-Methode überschreibt. Weitere Informationen finden Sie unter My.Application.MinimumSplashScreenDisplayTime-Eigenschaft.

    2. OnCreateSplashScreen. Ermöglicht es einem Designer, Code auszugeben, mit dem der Begrüßungsbildschirm initialisiert wird.

      Standardmäßig hat diese Methode keine Auswirkungen. Wenn Sie im Projekt-Designer von Visual Basic einen Begrüßungsbildschirm für die Anwendung auswählen, überschreibt der Designer die OnCreateSplashScreen-Methode mit einer Methode, die die SplashScreen-Eigenschaft auf eine neue Instanz des Formulars mit dem Begrüßungsbildschirm festlegt.

  2. OnStartup. Stellt einen Erweiterungspunkt für das Auslösen des Startup-Ereignisses bereit. Wenn diese Funktion False zurückgibt, wird das Starten der Anwendung abgebrochen.

    Standardmäßig löst diese Methode das Startup-Ereignis aus. Wenn der Ereignishandler die Cancel-Eigenschaft des Ereignisarguments auf True festlegt, gibt die Methode False zurück, um den Anwendungsstart abzubrechen.

  3. OnRun. Stellt einen Ausgangspunkt für den Zeitpunkt bereit, zu dem die Initialisierung abgeschlossen und die Hauptanwendung bereit für die Ausführung ist.

    Standardmäßig ruft diese Methode die OnCreateMainForm-Methode (zum Erstellen des Hauptformulars für die Anwendung) und die HideSplashScreen-Methode (zum Schließen des Begrüßungsbildschirms) auf, bevor sie in die Windows Forms-Meldungsschleife eintritt:

    1. OnCreateMainForm. Ermöglicht es einem Designer, Code auszugeben, mit dem das Hauptformular initialisiert wird.

      Standardmäßig hat diese Methode keine Auswirkungen. Wenn Sie jedoch im Projekt-Designer von Visual Basic ein Hauptformular für die Anwendung auswählen, überschreibt der Designer die OnCreateMainForm-Methode mit einer Methode, die die MainForm-Eigenschaft auf eine neue Instanz des Hauptformulars festlegt.

    2. HideSplashScreen. Wenn für die Anwendung ein Begrüßungsbildschirm definiert und dieser geöffnet ist, schließt diese Methode den Begrüßungsbildschirm.

      Standardmäßig schließt diese Methode den Begrüßungsbildschirm.

  4. OnStartupNextInstance. Stellt eine Möglichkeit bereit, das Verhalten einer Einzelinstanzanwendung für den Fall anzupassen, dass eine weitere Instanz der Anwendung gestartet wird.

    Standardmäßig löst diese Methode das StartupNextInstance-Ereignis aus.

  5. OnShutdown. Stellt einen Erweiterungspunkt für das Auslösen des Shutdown-Ereignisses bereit. Diese Methode wird nicht ausgeführt, wenn eine nicht behandelte Ausnahme in der Hauptanwendung auftritt.

    Standardmäßig löst diese Methode das Shutdown-Ereignis aus.

  6. OnUnhandledException. Wird ausgeführt, wenn eine nicht behandelte Ausnahme in einer der oben aufgeführten Methoden auftritt.

    Standardmäßig löst diese Methode das UnhandledException-Ereignis aus, sofern kein Debugger angefügt ist und das UnhandledException-Ereignis von der Anwendung behandelt wird.

Wenn es sich um eine bereits ausgeführte Einzelinstanzanwendung handelt, ruft die nachfolgende Instanz der Anwendung die OnStartupNextInstance-Methode für die ursprüngliche Anwendungsinstanz auf und wird anschließend beendet.

Der WindowsFormsApplicationBase-Konstruktor ruft die UseCompatibleTextRendering-Eigenschaft auf, um zu bestimmen, welches Textdarstellungsmodul für die Formulare der Anwendung verwendet wird. Die UseCompatibleTextRendering-Eigenschaft gibt standardmäßig False zurück, wodurch angezeigt wird, dass das Textdarstellungsmodul GDI verwendet wird, das Standardmodul in Visual Basic 2005. Sie können die UseCompatibleTextRendering-Eigenschaft überschreiben, um True zurückzugeben. Dadurch wird angegeben, dass das Textdarstellungsmodul GDI+ verwendet wird, das Standardmodul in Visual Basic .NET 2002 und in Visual Basic .NET 2003.

Konfigurieren der Anwendung

Im Rahmen des Visual Basic-Anwendungsmodells bietet die WindowsFormsApplicationBase-Klasse geschützte Eigenschaften für die Konfiguration der Anwendung. Diese Eigenschaften sollten im Konstruktor der implementierenden Klasse festgelegt werden.

In einem Windows Forms-Projekt erstellt der Projekt-Designer standardmäßig Code, mit dem die Eigenschaften auf Grundlage der Einstellungen für den Designer festgelegt werden. Die Eigenschaften werden nur beim Starten der Anwendung verwendet. Änderungen an den Eigenschaften zur Laufzeit haben keine Auswirkungen.

Eigenschaft

Auswirkung

Festlegen mit dem Projekt-Designer

IsSingleInstance

Bestimmt, ob die Anwendung als Einzelinstanz- oder Mehrfachinstanzanwendung ausgeführt wird.

Gewusst wie: Angeben des Instanziierungsverhaltens für eine Anwendung (Visual Basic)

EnableVisualStyles

Bestimmt, ob die Anwendung visuelle Windows XP-Stile verwendet.

Gewusst wie: Aktivieren visueller Stile (Visual Basic)

SaveMySettingsOnExit

Bestimmt, ob Änderungen an den Benutzereinstellungen beim Beenden der Anwendung automatisch gespeichert werden.

Aktivieren Sie im Projekt-Designer im Bereich Anwendung das Kontrollkästchen Eigene Einstellungen beim Herunterfahren speichern.

ShutdownStyle

Bestimmt Bedingungen für das Beenden der Anwendung, z. B. ob die Anwendung beim Schließen des Hauptformulars oder erst nach dem Schließen aller Formulare beendet werden soll.

Gewusst wie: Angeben des Verhaltens beim Beenden einer Anwendung (Visual Basic)

Siehe auch

Konzepte

Übersicht über das Visual Basic-Anwendungsmodell

Referenz

My.Application-Objekt

My.Application.Startup-Ereignis

My.Application.StartupNextInstance-Ereignis

My.Application.UnhandledException-Ereignis

My.Application.Shutdown-Ereignis

My.Application.NetworkAvailabilityChanged-Ereignis

WindowsFormsApplicationBase