Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können einem Microsoft Office Word-Dokument und einer Microsoft Office Excel-Arbeitsmappe zur Laufzeit Steuerelemente hinzufügen. Sie können sie auch zur Laufzeit entfernen. Steuerelemente, die Sie zur Laufzeit hinzufügen oder entfernen, werden als dynamische Steuerelemente bezeichnet.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.
In diesem Thema wird Folgendes beschrieben:
Verwalten von Steuerelementen zur Laufzeit mithilfe von Steuerelementsammlungen
Verwenden Sie die Hilfsmethoden der Objekte ControlCollection und ControlCollection, um Steuerelemente zur Laufzeit hinzuzufügen, abzurufen oder zu entfernen.
Die Art und Weise, wie Sie auf diese Objekte zugreifen, hängt vom Typ des Projekts ab, das Sie entwickeln:
Verwenden Sie in einem Projekt auf Dokumentebene für Excel die Eigenschaft der Klassen Controls,
Sheet1, undSheet2, sowieSheet3. Weitere Informationen zu diesen Klassen finden Sie im Arbeitsblatt-Hostelement.Verwenden Sie in einem Projekt auf Dokumentebene für Word die Controls Eigenschaft der
ThisDocumentKlasse. Weitere Informationen zu dieser Klasse finden Sie unter Dokumenthostelement.Verwenden Sie in einem VSTO-Add-in-Projekt für Excel oder Word die
Controls-Eigenschaft eines Worksheet oder Document, die Sie zur Laufzeit generieren. Weitere Informationen zum Generieren dieser Objekte zur Laufzeit finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.
Hinzufügen von Steuerelementen
Die Typen ControlCollection und ControlCollection umfassen Hilfsmethoden, mit denen Sie Hoststeuerelemente und allgemeine Windows Forms-Steuerelemente zu Dokumenten und Arbeitsblättern hinzufügen können. Jeder Methodenname weist die Add auf, wobei die Steuerelementklasse der Klassenname des Steuerelements ist, das Sie hinzufügen möchten. Wenn Sie ihrem Dokument beispielsweise ein NamedRange Steuerelement hinzufügen möchten, verwenden Sie die AddNamedRange Methode.
Im folgenden Codebeispiel wird ein NamedRange zu einem Sheet1 in einem Dokumentprojekt für Excel hinzugefügt.
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");
Zugriffs- und Löschsteuerelemente
Sie können die Controls-Eigenschaft einer Worksheet oder Document verwenden, um alle Steuerelemente in Ihrem Dokument zu durchlaufen, einschließlich der Steuerelemente, die Sie zur Entwurfszeit hinzugefügt haben. Steuerelemente, die Sie zur Entwurfszeit hinzufügen, werden auch als statische Steuerelemente bezeichnet.
Sie können dynamische Steuerelemente entfernen, indem Sie die Delete Methode des Steuerelements aufrufen oder die Remove Methode jeder Controls-Auflistung aufrufen. Im folgenden Codebeispiel wird die Remove Methode verwendet, um eine NamedRange aus Sheet1 einem Projekt auf Dokumentebene für Excel zu entfernen.
Statische Steuerelemente können zur Laufzeit nicht entfernt werden. Wenn Sie versuchen, die Delete- oder Remove-Methode zu verwenden, um ein statisches Steuerelement zu entfernen, wird ein CannotRemoveControlException ausgelöst.
Hinweis
Steuerelemente im Shutdown Ereignishandler des Dokuments nicht programmgesteuert entfernen. Die UI-Elemente des Dokuments sind nicht mehr verfügbar, wenn das Shutdown Ereignis ausgelöst wird. Wenn Sie Steuerelemente entfernen möchten, bevor das Dokument geschlossen wird, fügen Sie Ihren Code dem Ereignishandler für ein anderes Ereignis hinzu, z. B. BeforeClose oder BeforeSave für Word, oder BeforeClose oder BeforeSave für Excel.
Hinzufügen von Hoststeuerelementen zu Dokumenten
Wenn Sie Hoststeuerelemente programmgesteuert zu Dokumenten hinzufügen, müssen Sie einen Namen angeben, der das Steuerelement eindeutig identifiziert, und Sie müssen angeben, wo das Steuerelement dem Dokument hinzugefügt werden soll. Spezifische Anweisungen finden Sie in den folgenden Themen:
Vorgehensweise: Hinzufügen von ListObject-Steuerelementen zu Arbeitsblättern
Vorgehensweise: Hinzufügen von NamedRange-Steuerelementen zu Arbeitsblättern
Vorgehensweise: Hinzufügen von Diagrammsteuerelementen zu Arbeitsblättern
Vorgehensweise: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten
Vorgehensweise: Hinzufügen von Textmarkensteuerelementen zu Word-Dokumenten
Weitere Informationen zu Hoststeuerungselementen finden Sie unter Übersicht zu Host- und Steuerungselementen.
Wenn ein Dokument gespeichert und dann geschlossen wird, werden alle dynamisch erstellten Hoststeuerelemente von ihren Ereignissen getrennt und verlieren ihre Datenbindungsfunktionen. Sie können Ihrer Lösung Code hinzufügen, um die Hoststeuerelemente erneut zu erstellen, wenn das Dokument erneut geöffnet wird. Weitere Informationen finden Sie unter Beibehalten dynamischer Steuerelemente in Office-Dokumenten.
Hinweis
Hilfsmethoden werden für die folgenden Hoststeuerelemente nicht bereitgestellt, da diese Steuerelemente nicht programmgesteuert zu Dokumenten hinzugefügt werden können: XmlMappedRange, , XMLNodeund XMLNodes.
Hinzufügen von Windows Forms-Steuerelementen zu Dokumenten
Wenn Sie einem Dokument programmgesteuert ein Windows Forms-Steuerelement hinzufügen, müssen Sie den Speicherort des Steuerelements und einen Namen angeben, der das Steuerelement eindeutig identifiziert. Die Visual Studio Tools für Office-Laufzeit stellt Hilfsmethoden für jedes Steuerelement bereit. Diese Methoden sind überladen, sodass Sie entweder einen Bereich oder bestimmte Koordinaten für die Position des Steuerelements übergeben können.
Wenn ein Dokument gespeichert und dann geschlossen wird, werden alle dynamisch erstellten Windows Forms-Steuerelemente aus dem Dokument entfernt. Sie können Ihrer Lösung Code hinzufügen, um die Steuerelemente erneut zu erstellen, wenn das Dokument erneut geöffnet wird. Wenn Sie dynamische Windows Forms-Steuerelemente mithilfe eines VSTO-Add-Ins erstellen, bleiben die ActiveX-Wrapper für die Steuerelemente im Dokument erhalten. Weitere Informationen finden Sie unter Beibehalten dynamischer Steuerelemente in Office-Dokumenten.
Hinweis
Windows Forms-Steuerelemente können nicht programmgesteuert zu geschützten Dokumenten hinzugefügt werden. Wenn Sie den Schutz eines Word-Dokuments oder eines Excel-Arbeitsblatts programmgesteuert aufheben, um ein Steuerelement hinzuzufügen, müssen Sie zusätzlichen Code schreiben, um den ActiveX-Wrapper des Steuerelements zu entfernen, wenn das Dokument geschlossen wird. Der ActiveX-Wrapper des Steuerelements wird nicht automatisch aus geschützten Dokumenten gelöscht.
Hinzufügen von benutzerdefinierten Steuerelementen
Wenn Sie ein Control Steuerelement hinzufügen möchten, das von den verfügbaren Hilfsmethoden, z. B. einem benutzerdefinierten Benutzersteuerelement, nicht unterstützt wird, verwenden Sie die folgenden Methoden:
Verwenden Sie für Excel eine der AddControl Methoden eines ControlCollection Objekts.
Verwenden Sie für Word eine der AddControl Methoden eines ControlCollection Objekts.
Um das Steuerelement hinzuzufügen, übergeben Sie den Control, eine Position für das Steuerelement und einen Namen, der das Steuerelement eindeutig an die
AddControlMethode identifiziert. DieAddControlMethode gibt ein Objekt zurück, das definiert, wie das Steuerelement mit dem Arbeitsblatt oder Dokument interagiert. DieAddControlMethode gibt ein ControlSite (für Excel) oder ein ControlSite Objekt (für Word) zurück.Im folgenden Codebeispiel wird veranschaulicht, wie Die AddControl Methode verwendet wird, um einem Arbeitsblatt in einem Excel-Projekt auf Dokumentebene dynamisch ein benutzerdefiniertes Benutzersteuerelement hinzuzufügen. In diesem Beispiel wird das Benutzersteuerelement
UserControl1genannt, und das Range wirdrange1genannt. Um dieses Beispiel zu verwenden, führen Sie es aus einerSheetn-Klasse im Projekt aus.
Verwenden von Mitgliedern von benutzerdefinierten Steuerelementen
Nachdem Sie eine der AddControl Methoden zum Hinzufügen eines Steuerelements zu einem Arbeitsblatt oder Dokument verwendet haben, verfügen Sie jetzt über zwei verschiedene Steuerelementobjekte:
Das Control stellt das benutzerdefinierte Steuerelement dar.
Das
ControlSite,OLEObjectoderOLEControlObjekt, das das Steuerelement darstellt, nachdem es dem Arbeitsblatt oder Dokument hinzugefügt wurde.Viele Eigenschaften und Methoden werden zwischen diesen Steuerelementen gemeinsam verwendet. Es ist wichtig, dass Sie über das entsprechende Steuerelement auf diese Mitglieder zugreifen:
Um nur auf Mitglieder zuzugreifen, die nur zum benutzerdefinierten Steuerelement gehören, verwenden Sie die Control.
Um auf Mitglieder zuzugreifen, die von den Steuerelementen gemeinsam genutzt werden, verwenden Sie das
ControlSite,OLEObjectoderOLEControl-Objekt.Wenn Sie auf ein freigegebenes Mitglied über das ControlElement zugreifen, schlägt es möglicherweise ohne Warnung oder Benachrichtigung fehl, oder es kann zu ungültigen Ergebnissen führen. Verwenden Sie immer Methoden oder Eigenschaften des
ControlSite,OLEObject, oderOLEControl-Objekts. Es sei denn, die erforderliche Methode oder Eigenschaft ist nicht verfügbar. Nur dann sollten Sie auf das Control-Objekt zugreifen.Beispielsweise verfügen sowohl die ControlSite Klasse als auch die Control Klasse über eine
TopEigenschaft. Um den Abstand zwischen dem oberen Rand des Steuerelements und dem oberen Rand des Dokuments abzurufen oder festzulegen, verwenden Sie die Top Eigenschaft der ControlSite, nicht die Top Eigenschaft der .Control
Verwandte Inhalte
- Steuerelemente für Office-Dokumente
- Beibehalten dynamischer Steuerelemente in Office-Dokumenten
- Vorgehensweise: Hinzufügen von ListObject-Steuerelementen zu Arbeitsblättern
- Vorgehensweise: Hinzufügen von NamedRange-Steuerelementen zu Arbeitsblättern
- Vorgehensweise: Hinzufügen von Diagrammsteuerelementen zu Arbeitsblättern
- Vorgehensweise: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten
- Vorgehensweise: Hinzufügen von Textmarkensteuerelementen zu Word-Dokumenten
- Übersicht über Windows Forms-Steuerelemente in Office-Dokumenten
- Vorgehensweise: Hinzufügen von Windows Forms-Steuerelementen zu Office-Dokumenten