Freigeben über


Erweitern des Visual Basic-Anwendungsmodells

Sie können dem Anwendungsmodell Funktionen hinzufügen, indem Sie die Overridable Member der WindowsFormsApplicationBase Klasse überschreiben. Mit dieser Technik können Sie das Verhalten des Anwendungsmodells anpassen und Aufrufe Ihrer eigenen Methoden hinzufügen, während die Anwendung startet und heruntergefahren wird.

Visuelle Übersicht über das Anwendungsmodell

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

Die folgende Grafik zeigt die Aufrufsequenz des Anwendungsmodells in einer normalen Visual Basic Windows Forms-Anwendung. Die Sequenz beginnt, wenn die Sub Main Prozedur die Run Methode aufruft.

Diagramm, das die Aufrufsequenz des Anwendungsmodells zeigt.

Das Visual Basic-Anwendungsmodell stellt auch die StartupNextInstance- und UnhandledException-Ereignisse bereit. Die folgende Grafik zeigt den Mechanismus zum Auslösen dieser Ereignisse.

Diagramm mit der OnStartupNextInstance-Methode zum Auslösen des StartupNextInstance-Ereignisses.

Diagramm mit der OnUnhandledException-Methode zum Auslösen des UnhandledException-Ereignisses.

Überschreiben der Basismethoden

Die 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 Hauptanwendungsthread fest (wenn die Anwendung die Windows-Authentifizierung verwendet) und ruft ShowSplashScreen auf, wenn weder /nosplash noch -nosplash als Befehlszeilenargument verwendet werden.

    Die Anwendungsstartsequenz wird abgebrochen, wenn diese Funktion False zurückgibt. Dies kann nützlich sein, wenn es Situationen gibt, in denen die Anwendung nicht ausgeführt werden soll.

    Die OnInitialize Methode ruft die folgenden Methoden auf:

    1. ShowSplashScreen. Bestimmt, ob für die Anwendung ein Begrüßungsbildschirm definiert ist und wenn dies der Fall ist, wird der Begrüßungsbildschirm in einem separaten Thread angezeigt.

      Die ShowSplashScreen Methode enthält den Code, der den Begrüßungsbildschirm mindestens für die Anzahl von Millisekunden anzeigt, die von der MinimumSplashScreenDisplayTime Eigenschaft angegeben werden. Um diese Funktionalität zu verwenden, müssen Sie der Anwendung den Begrüßungsbildschirm mithilfe des Project-Designers (der die My.Application.MinimumSplashScreenDisplayTime Eigenschaft auf zwei Sekunden festlegt) hinzufügen oder die My.Application.MinimumSplashScreenDisplayTime Eigenschaft in einer Methode festlegen, die die OnInitialize Methode OnCreateSplashScreen überschreibt. Weitere Informationen finden Sie unter MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Ermöglicht einem Designer das Ausgeben von Code, der den Begrüßungsbildschirm initialisiert.

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

  2. OnStartup. Stellt einen Erweiterungspunkt für das Auslösen des Startup-Ereignisses bereit. Die Startsequenz der Anwendung stoppt, wenn diese Funktion zurückgegeben wird False.

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

  3. OnRun. Bietet den Ausgangspunkt, wenn die Hauptanwendung nach Abschluss der Initialisierung bereit ist, ausgeführt zu werden.

    Vor der Eingabe der Windows Forms-Nachrichtenschleife ruft diese Methode standardmäßig die OnCreateMainForm Methoden (zum Erstellen des Hauptformulars der Anwendung) und HideSplashScreen (zum Schließen des Begrüßungsbildschirms) auf:

    1. OnCreateMainForm. Bietet eine Möglichkeit, dass ein Designer Code ausgibt, der das Hauptformular initialisiert.

      Standardmäßig hat diese Methode keine Auswirkungen. Wenn Sie jedoch ein Hauptformular für Ihre Anwendung im Visual Basic Project Designer 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 die Anwendung einen Begrüßungsbildschirm definiert und geöffnet ist, schließt diese Methode den Begrüßungsbildschirm.

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

  4. OnStartupNextInstance. Bietet eine Möglichkeit, das Verhalten einer Anwendung mit einer einzelnen Instanz anzupassen, wenn eine andere 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 in der Hauptanwendung eine unbehandelte Ausnahme auftritt.

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

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

    Standardmäßig löst diese Methode das UnhandledException Ereignis aus, solange kein Debugger angefügt ist und die Anwendung das UnhandledException Ereignis behandelt.

Wenn es sich bei der Anwendung um eine Instanzanwendung handelt und die Anwendung bereits ausgeführt wird, ruft die nachfolgende Instanz der Anwendung die OnStartupNextInstance Methode für die ursprüngliche Instanz der Anwendung auf und beendet sie.

Der OnStartupNextInstance(StartupNextInstanceEventArgs) Konstruktor ruft die UseCompatibleTextRendering Eigenschaft auf, um zu bestimmen, welches Textrenderingmodul für die Formulare der Anwendung verwendet werden soll. Standardmäßig gibt die UseCompatibleTextRendering Eigenschaft zurück False, die angibt, dass das GDI-Textrenderingmodul verwendet wird, das standard in Visual Basic 2005 und höheren Versionen ist. Sie können die Eigenschaft UseCompatibleTextRendering überschreiben, sodass True zurückgegeben wird. Dies weist darauf hin, dass die GDI+-Textrendering-Engine verwendet wird, welche in Visual Basic .NET 2002 und Visual Basic .NET 2003 standardmäßig ist.

Konfigurieren der Anwendung

Als Teil des Visual Basic-Anwendungsmodells stellt die WindowsFormsApplicationBase Klasse geschützte Eigenschaften bereit, die die Anwendung konfigurieren. Diese Eigenschaften sollten im Konstruktor der implementierenden Klasse festgelegt werden.

In einem Standardmäßigen Windows Forms-Projekt erstellt der Project Designer Code zum Festlegen der Eigenschaften mit den Designereinstellungen. Die Eigenschaften werden nur verwendet, wenn die Anwendung gestartet wird; das Festlegen dieser Elemente nach dem Starten der Anwendung keine Auswirkung hat.

Eigentum Bestimmt… Einstellung im Anwendungsbereich des Projekt-Designers
IsSingleInstance Gibt an, ob die Anwendung als Einzelinstanz- oder Mehrfachinstanzanwendung ausgeführt wird. Einzelinstanzanwendung erstellen-Kontrollkästchen
EnableVisualStyles Wenn die Anwendung visuelle Stile verwendet, die mit Windows XP übereinstimmen. Kontrollkästchen Visuelle XP-Stile aktivieren
SaveMySettingsOnExit Wenn die Anwendung die Benutzereinstellungen der Anwendung automatisch speichert, wenn die Anwendung beendet wird. Kontrollkästchen "Meine.Einstellungen beim Herunterfahren speichern"
ShutdownStyle Was dazu führt, dass die Anwendung beendet wird, z. B. wenn das Startformular geschlossen wird oder das letzte Formular geschlossen wird. Liste Modus für das Herunterfahren

Siehe auch