Erweitern des Visual Basic-Anwendungsmodells
Sie können dem Anwendungsmodell Funktionen hinzufügen, indem Sie die Overridable
-Member der WindowsFormsApplicationBase-Klasse überschreiben. Diese Technik ermöglicht es Ihnen, das Verhalten des Anwendungsmodells anzupassen und Aufrufe für Ihre eigenen Methoden hinzuzufügen, wenn die Anwendung gestartet und beendet wird.
Visuelle Übersicht über das Anwendungsmodell
In diesem Abschnitt wird die Sequenz von Funktionsaufrufen im Visual Basic-Anwendungsmodell visuell dargestellt. Im nächsten Abschnitt werden die Zwecke der einzelnen Funktionen im Detail erläutert.
Auf der folgenden Abbildung sehen Sie die Aufrufsequenz des Anwendungsmodells in einer normalen Windows Forms-Anwendung in Visual Basic. Die Sequenz beginnt, wenn die Sub Main
-Prozedur die Run-Methode aufruft.
Das Anwendungsmodell in Visual Basic stellt auch StartupNextInstance- und UnhandledException-Ereignisse bereit. In der folgenden Abbildung sehen Sie die Mechanismen, die für das Auslösen dieser Ereignisse verantwortlich sind.
Ü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 (Anwendung mit mehreren Instanzen) handelt oder um die erste Instanz einer Einzelinstanzanwendung, führt die Run-Methode die Overridable
-Methoden in der folgenden Reihenfolge aus:
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 hilfreich sein, wenn es Umstände gibt, in denen die Anwendung nicht ausgeführt werden sollte.Die OnInitialize-Methode ruft die folgenden Methoden auf:
ShowSplashScreen. Bestimmt, ob für die Anwendung ein Begrüßungsbildschirm definiert ist. Ist dies der Fall, wird der Begrüßungsbildschirm auf einem separaten Thread angezeigt.
Die ShowSplashScreen-Methode enthält den Code, der den Begrüßungsbildschirm mindestens für die Dauer an Millisekunden anzeigt, die von der MinimumSplashScreenDisplayTime-Eigenschaft angegeben werden. Zur Verwendung dieser Funktion müssen Sie den Begrüßungsbildschirm Ihrer Anwendung mithilfe des Projekt-Designers hinzufügen (wodurch die
My.Application.MinimumSplashScreenDisplayTime
-Eigenschaft auf zwei Sekunden festgelegt wird) oder dieMy.Application.MinimumSplashScreenDisplayTime
-Eigenschaft in einer Methode festlegen, die die OnInitialize- oder OnCreateSplashScreen-Methode überschreibt. Weitere Informationen finden Sie unter MinimumSplashScreenDisplayTime.OnCreateSplashScreen. Ermöglicht einem Designer, Code auszugeben, der den Begrüßungsbildschirm initialisiert.
Standardmäßig hat diese Methode keine Auswirkungen. Wenn Sie einen Begrüßungsbildschirm für Ihre Anwendung im Projekt-Designer in Visual Basic auswählen, überschreibt der Designer die OnCreateSplashScreen-Methode mit einer Methode, die die SplashScreen-Eigenschaft auf eine neue Instanz des Begrüßungsbildschirmformulars festlegt.
OnStartup. Stellt einen Erweiterungspunkt für das Auslösen des
Startup
-Ereignisses bereit. Die Anwendungsstartsequenz wird angehalten, wenn diese FunktionFalse
zurückgibt.Standardmäßig löst diese Methode das Startup-Ereignis aus. Wenn der Ereignishandler die Cancel-Eigenschaft des Ereignisarguments auf
True
festlegt, gibt die MethodeFalse
zurück, um den Anwendungsstart abzubrechen.OnRun. Stellt den Startpunkt bereit, wenn die Ausführung der Hauptanwendung begonnen werden kann, nachdem die Initialisierung abgeschlossen ist.
Standardmäßig ruft diese Methode die Methoden
OnCreateMainForm
(um das Hauptformular der Anwendung zu erstellen) undHideSplashScreen
(um den Begrüßungsbildschirm zu schließen) auf, bevor sie die Windows Forms-Nachrichtenschleife startet:OnCreateMainForm. Stellt eine Möglichkeit für Designer bereit, Code auszugeben, der das Hauptformular initialisiert.
Standardmäßig hat diese Methode keine Auswirkungen. Wenn Sie jedoch ein Hauptformular für Ihre Anwendung im Projekt-Designer in Visual Basic auswählen, überschreibt der Designer die OnCreateMainForm-Methode mit einer Methode, die die MainForm-Eigenschaft auf eine neue Instanz des Hauptformulars festlegt.
HideSplashScreen. Wenn für die Anwendung ein Begrüßungsbildschirm definiert ist und er geöffnet ist, schließt diese Methode den Begrüßungsbildschirm.
Standardmäßig schließt diese Methode den Begrüßungsbildschirm.
OnStartupNextInstance. Stellt eine Möglichkeit bereit, anzupassen, wie sich eine Einzelinstanzanwendung verhält, wenn eine andere Instanz der Anwendung gestartet wird.
Standardmäßig löst diese Methode das StartupNextInstance-Ereignis aus.
OnShutdown. Stellt einen Erweiterungspunkt für das Auslösen des
Shutdown
-Ereignisses bereit. Diese Methode wird nicht ausgeführt, wenn ein Ausnahmefehler in der Hauptanwendung auftritt.Standardmäßig löst diese Methode das Shutdown-Ereignis aus.
OnUnhandledException. Wird ausgeführt, wenn ein Ausnahmefehler in einer der oben aufgeführten Methoden auftritt.
Standardmäßig löst diese Methode das UnhandledException-Ereignis aus, solange der Debugger nicht angefügt ist und die Anwendung das
UnhandledException
-Ereignis behandelt.
Wenn es sich bei der Anwendung um eine Einzelinstanzanwendung handelt und die Anwendung bereits ausgeführt wird, ruft die anschließende Instanz der Anwendung die OnStartupNextInstance-Methode auf der ursprünglichen Instanz der Anwendung auf und wird dann beendet.
Der OnStartupNextInstance(StartupNextInstanceEventArgs)-Konstruktor ruft die UseCompatibleTextRendering-Eigenschaft auf, um zu bestimmen, welche Textrendering-Engine für die Formulare der Anwendung verwendet werden soll. Standardmäßig gibt die UseCompatibleTextRendering-Eigenschaft False
zurück, was darauf hinweist, dass die GDI-Textrendering-Engine verwendet werden soll. Dabei handelt es sich um den Standardwert für Visual Basic 2005 und höhere Versionen. Sie können die UseCompatibleTextRendering-Eigenschaft überschreiben, damit True
zurückgegeben wird, was darauf hinweist, dass die GDI+-Textrendering-Engine verwendet werden soll. Dabei handelt es sich um den Standardwert für Visual Basic .NET 2002 und Visual Basic .NET 2003.
Konfigurieren der Anwendung
Als Teil des Anwendungsmodells in Visual Basic stellt die WindowsFormsApplicationBase-Klasse geschützte Eigenschaften bereit, die die Anwendung konfigurieren. Diese Eigenschaften sollten im Konstruktor der implementierenden Klasse festgelegt werden.
In einem Windows Forms-Standardprojekt erstellt der Projekt-Designer Code, um die Eigenschaften mit den Einstellungen des Designers festzulegen. Die Eigenschaften werden nur verwendet, wenn die Anwendung gestartet wird. Wenn sie festgelegt werden, nachdem die Anwendung gestartet wurde, hat dies keine Auswirkungen.
Eigenschaft | Bestimmt… | Einstellung im Anwendungsbereich des Projekt-Designers |
---|---|---|
IsSingleInstance | … ob die Anwendung als Einzelinstanzanwendung oder Anwendung mit mehreren Instanzen ausgeführt wird. | Kontrollkästchen Einzelinstanzanwendung erstellen |
EnableVisualStyles | … ob die Anwendung visuelle Stile verwendet, die denen von Windows entsprechen. | Kontrollkästchen Visuelle XP-Stile aktivieren |
SaveMySettingsOnExit | … ob die Anwendung automatisch die Änderungen an Benutzereinstellungen speichert, wenn die Anwendung beendet wird. | Kontrollkästchen My.Settings 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 |