Ereignisse in Office-Projekten

Jede Office-Projektvorlage generiert automatisch mehrere Ereignishandler. Die Ereignishandler für Anpassungen auf Dokumentebene unterscheiden sich geringfügig von Ereignishandlern für VSTO-Add-Ins.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte. Siehe features available by Office-App lication and project type.

Projekte auf Dokumentebene

Visual Studio stellt generierten Code hinter neuen oder vorhandenen Dokumenten oder Arbeitsblättern in Anpassungen auf Dokumentebene bereit. Mit diesem Code werden zwei unterschiedliche Ereignisse ausgelöst: Startup und Shutdown.

Startup-Ereignis

Das Startup -Ereignis wird für jedes Hostelement ausgelöst (Dokument, Arbeitsmappe oder Arbeitsblatt), nachdem das Dokument und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Dies ist das letzte ausgeführte Element im Konstruktor der Klasse, in dem Ihr Code ausgeführt wird. Weitere Informationen zu Hostelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.

Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio Ereignishandler für das Startup -Ereignis in den generierten Codedateien:

  • Für Microsoft Office Word-Projekte hat der Ereignishandler den Namen ThisDocument_Startup.

  • Für Microsoft Office Excel-Projekte haben die Ereignishandler die folgenden Namen:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown-Ereignis

Das Shutdown -Ereignis wird für jedes Hostelement (Dokument oder Arbeitsblatt) ausgelöst, wenn die Anwendungsdomäne, in der Ihr Code geladen wurde, entladen werden soll. Dies ist das letzte Element, das beim Entladen in der Klasse aufgerufen wird.

Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio Ereignishandler für das Shutdown -Ereignis in den generierten Codedateien:

  • Für Microsoft Office Word-Projekte hat der Ereignishandler den Namen ThisDocument_Shutdown.

  • Für Microsoft Office Excel-Projekte haben die Ereignishandler die folgenden Namen:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Hinweis

Vermeiden Sie es, Steuerelemente während des Shutdown -Ereignishandlerzeitraums des Dokuments programmgesteuert zu entfernen. Die Benutzeroberflächenelemente des Dokuments sind nicht mehr verfügbar, wenn das Shutdown -Ereignis eintritt. Wenn Sie Steuerelemente vor dem Schließen der Anwendung entfernen möchten, können Sie Ihren Code einem anderen Ereignishandler hinzufügen, z. B. BeforeClose oder BeforeSave.

Ereignishandlermethodendeklarationen

An jede Ereignishandler-Methodendeklaration werden die gleichen Argumente übergeben: sender und e. In Excel bezieht sich das sender -Argument auf das Arbeitsblatt, z. B. Sheet1 oder Sheet2. In Word bezieht sich das sender -Argument auf das Dokument. Das e -Argument bezieht sich auf die Standardargumente für ein Ereignis, die in diesem Fall nicht verwendet werden.

Im folgenden Codebeispiel werden die Standardereignishandler in Projekten auf Dokumentebene für Word veranschaulicht.

private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

Im folgenden Codebeispiel werden die Standardereignishandler in Projekten auf Dokumentebene für Excel veranschaulicht.

Hinweis

Im folgenden Codebeispiel werden die Ereignishandler in der Sheet1 -Klasse veranschaulicht. Die Namen der Ereignishandler in anderen Hostelementklassen entsprechen dem Klassennamen. In der Sheet2 -Klasse hat der Startup -Ereignishandler beispielsweise den Namen Sheet2_Startup. In der ThisWorkbook -Klasse hat der Startup -Ereignishandler beispielsweise den Namen ThisWorkbook_Startup.

private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

Reihenfolge der Ereignisse in Excel-Projekten auf Dokumentebene

Die Startup -Ereignishandler in Excel-Projekten werden in dieser Reihenfolge aufgerufen:

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Andere Blätter laut Reihenfolge.

    Die Shutdown -Ereignishandler in einer Arbeitsmappen-Projektmappe werden in dieser Reihenfolge aufgerufen:

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

  10. Andere Blätter laut Reihenfolge.

    Die Reihenfolge wird festgelegt, wenn das Projekt kompiliert wird. Wenn der Benutzer die Blätter zur Laufzeit anders anordnet, ändert sich dadurch nicht die Reihenfolge, in der die Ereignisse beim nächsten Öffnen oder Schließen der Arbeitsmappe ausgelöst werden.

VSTO-Add-In-Projekte

Visual Studio stellt generierten Code in VSTO-Add-Ins bereit. Dieser Code löst zwei verschiedene Ereignisse aus: Startup und Shutdown.

Startup-Ereignis

Das Startup -Ereignis wird ausgelöst, nachdem das VSTO-Add-In geladen und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Dieses Ereignis wird mit der ThisAddIn_Startup -Methode in der generierten Codedatei behandelt.

Code im ThisAddIn_Startup -Ereignishandler ist der erste Benutzercode, der ausgeführt wird, es sei denn, Ihr VSTO-Add-In setzt die RequestComAddInAutomationService -Methode außer Kraft. In diesem Fall wird der ThisAddIn_Startup -Ereignishandler nach RequestComAddInAutomationServiceaufgerufen.

Fügen Sie dem Ereignishandler keinen Code ThisAdd-In_Startup hinzu, wenn der Code ein Dokument öffnen muss. Fügen Sie den Code stattdessen einem Ereignis hinzu, das von der Office-Anwendung ausgelöst wird, wenn ein Benutzer ein Dokument erstellt oder öffnet. Weitere Informationen finden Sie unter Access ein Dokument, wenn die Office-App lizenzierung gestartet wird.

Weitere Informationen zur Startsequenz von VSTO-Add-Ins finden Sie unter Architektur von VSTO-Add-Ins.

Shutdown-Ereignis

Das Shutdown -Ereignis wird ausgelöst, wenn die Anwendungsdomäne, in der Ihr Code geladen wird, entladen werden soll. Dieses Ereignis wird mit der ThisAddIn_Shutdown -Methode in der generierten Codedatei behandelt. Dieser Ereignishandler ist der letzte Benutzercode, der beim Entladen des VSTO-Add-Ins ausgeführt wird.

Herunterfahren-Ereignis in Outlook VSTO-Add-Ins

Das Shutdown -Ereignis wird nur ausgelöst, wenn der Benutzer das VSTO-Add-In in Outlook über das Dialogfeld "COM-Add-Ins" deaktiviert. Es wird nicht ausgelöst, wenn Outlook beendet wird. Wenn Sie über Code verfügen, der beim Beenden von Outlook ausgeführt werden muss, sollten Sie eines der folgenden Ereignisse behandeln:

Hinweis

Sie können für Outlook erzwingen, dass das Shutdown -Ereignis beim Beenden ausgelöst wird, indem Sie dies in der Registrierung ändern. Aber wenn ein Administrator diese Einstellung zurücksetzt, wird der Code, den Sie der ThisAddIn_Shutdown -Methode hinzufügen, beim Beenden von Outlook nicht mehr ausgeführt. Weitere Informationen finden Sie unter "Änderungen beim Herunterfahren" für Outlook 2010.