Freigeben über


Übersicht über das Visual Basic-Anwendungsmodell

Visual Basic stellt ein gut definiertes Modell zum Steuern des Verhaltens von Windows Forms-Anwendungen bereit: das Visual Basic-Anwendungsmodell. Dieses Modell enthält Ereignisse, um den Start und das Herunterfahren der Anwendung zu verarbeiten sowie zum Abfangen von Ausnahmefehlern. Es bietet auch Unterstützung für die Entwicklung von Einzelinstanzanwendungen. Das Anwendungsmodell ist erweiterbar, sodass Entwickler, die mehr Kontrolle benötigen, ihre überschreibbaren Methoden anpassen können.

Verwendung für das Anwendungsmodell

Eine typische Anwendung muss Aufgaben ausführen, wenn sie gestartet und heruntergefahren wird. Wenn sie beispielsweise gestartet wird, kann die Anwendung einen Begrüßungsbildschirm anzeigen, Datenbankverbindungen herstellen, einen gespeicherten Zustand laden usw. Wenn die Anwendung heruntergefahren wird, kann sie Datenbankverbindungen schließen, den aktuellen Zustand speichern usw. Darüber hinaus kann die Anwendung einen bestimmten Code ausführen, wenn die Anwendung unerwartet heruntergefahren wird, z. B. während einer unbehandelten Ausnahme.

Das Visual Basic Application-Modell erleichtert das Erstellen einer Einzelinstanzanwendung . Eine Einzelinstanzanwendung unterscheidet sich von einer normalen Anwendung darin, dass jeweils nur eine Instanz der Anwendung ausgeführt werden kann. Ein Versuch, eine andere Instanz einer Einzelinstanzanwendung zu starten, führt dazu, dass die ursprüngliche Instanz – mittels des StartupNextInstance Ereignisses – benachrichtigt wird, dass ein weiterer Startversuch durchgeführt wurde. Die Benachrichtigung enthält die Befehlszeilenargumente der nachfolgenden Instanz. Die nachfolgende Instanz der Anwendung wird dann geschlossen, bevor eine Initialisierung erfolgen kann.

Eine Einzelinstanzanwendung startet und überprüft, ob es sich um die erste Instanz oder eine nachfolgende Instanz der Anwendung handelt:

  • Wenn es sich um die erste Instanz handelt, wird sie wie gewohnt gestartet.

  • Jeder nachfolgende Versuch, die Anwendung zu starten, während die erste Instanz ausgeführt wird, führt zu einem sehr unterschiedlichen Verhalten. Die nachfolgende Instanz übergibt die Befehlszeilenargumente an die erste Instanz und wird dann sofort beendet. Die erste Instanz behandelt das StartupNextInstance Ereignis, um zu bestimmen, welche Befehlszeilenargumente die nachfolgende Instanz hatte, und läuft weiter.

    Dieses Diagramm zeigt, wie eine nachfolgende Instanz die erste Instanz signalisiert:

    Diagramm, das ein einzelnes Instanzanwendungsbild zeigt.

Durch die Behandlung des StartupNextInstance Ereignisses können Sie steuern, wie sich ihre Einzelinstanzanwendung verhält. Beispielsweise wird Microsoft Outlook in der Regel als Einzelinstanzanwendung ausgeführt. Wenn Outlook ausgeführt wird und Sie versuchen, Outlook erneut zu starten, wechselt der Fokus auf die ursprüngliche Instanz, aber eine andere Instanz wird nicht geöffnet.

Ereignisse im Anwendungsmodell

Die folgenden Ereignisse werden im Anwendungsmodell gefunden:

  • Anwendungsstart. Die Anwendung löst das Startup Ereignis aus, wenn es gestartet wird. Durch die Behandlung dieses Ereignisses können Sie Code hinzufügen, der die Anwendung initialisiert, bevor das Hauptformular geladen wird. Das Startup Ereignis ermöglicht auch das Abbrechen der Ausführung der Anwendung während dieser Phase des Startvorgangs, falls gewünscht.

    Sie können die Anwendung so konfigurieren, dass ein Begrüßungsbildschirm angezeigt wird, während der Startcode der Anwendung ausgeführt wird. Standardmäßig unterdrückt das Anwendungsmodell den Startbildschirm, wenn entweder das /nosplash- oder -nosplash-Befehlszeilenargument verwendet wird.

  • Einzelinstanzanwendungen. Das StartupNextInstance Ereignis wird ausgelöst, wenn eine nachfolgende Instanz einer Einzelinstanzanwendung gestartet wird. Dieses übergibt die Befehlszeilenargumente der nachfolgenden Instanz.

  • Unbehandelte Ausnahmen. Wenn die Anwendung auf eine unbehandelte Ausnahme stößt, löst sie das UnhandledException Ereignis aus. Der Event-Handler kann die Ausnahme analysieren und entscheiden, ob die Ausführung fortgesetzt werden soll.

    Das UnhandledException Ereignis wird unter bestimmten Umständen nicht ausgelöst. Weitere Informationen finden Sie unter UnhandledException.

  • Netzwerkkonnektivitätsänderungen. Wenn sich die Netzwerkverfügbarkeit des Computers ändert, löst die Anwendung das NetworkAvailabilityChanged Ereignis aus.

    Das NetworkAvailabilityChanged Ereignis wird unter bestimmten Umständen nicht ausgelöst. Weitere Informationen finden Sie unter NetworkAvailabilityChanged.

  • Die Anwendung wird heruntergefahren. Über das Ereignis Shutdown signalisiert die Anwendung, dass sie gleich heruntergefahren wird. In diesem Ereignishandler können Sie sicherstellen, dass Vorgänge wie beispielsweise Schließen und Speichern, die Ihre Anwendung ausführen muss, abgeschlossen werden. Sie können Ihre Anwendung so konfigurieren, dass sie beendet wird, wenn das Hauptformular geschlossen wird, oder erst dann beendet wird, wenn alle Formulare geschlossen sind.

Verfügbarkeit

Standardmäßig ist das Visual Basic-Anwendungsmodell für Windows Forms-Projekte verfügbar. Wenn Sie die Anwendung so konfigurieren, dass sie ein anderes Startobjekt verwendet, oder den Anwendungscode mit einem benutzerdefinierten Sub Main starten, muss dieses Objekt oder diese Klasse möglicherweise eine Implementierung der WindowsFormsApplicationBase Klasse bereitstellen, um das Anwendungsmodell zu nutzen. Informationen zum Ändern des Startobjekts finden Sie auf der Anwendungsseite, Project Designer (Visual Basic).For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

Siehe auch