Exemplarische Vorgehensweise: Erstellen einer Vorlage mithilfe von Inhaltssteuerelementen
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie Sie Anpassungen auf Dokumentebene für die Verwendung von Inhaltssteuerelementen für strukturierten und wiederverwendbaren Inhalt in einer Microsoft Office Word 2007-Vorlage erstellen.
Word ermöglicht es Ihnen, eine Auflistung wiederverwendbarer Dokumentteile zu erstellen, die Bausteine genannt werden. In dieser exemplarischen Vorgehensweise wird erläutert, wie zwei Tabellen als Bausteine erstellt werden. Jede Tabelle enthält verschiedene Inhaltssteuerelemente, die unterschiedliche Arten von Inhalt umfassen können, z. B. Nur-Text oder Datumsangaben. Eine der Tabellen enthält Informationen über einen Mitarbeiter, die andere Tabelle enthält Kundenfeedback.
Nachdem Sie ein Dokument aus einer Vorlage erstellt haben, können Sie dem Dokument eine der beiden Tabellen mithilfe von verschiedenen BuildingBlockGalleryContentControl-Objekten hinzufügen, die die verfügbaren Bausteine in der Vorlage anzeigen.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen von Tabellen, die zur Entwurfszeit Inhaltssteuerelemente in einer Word-Vorlage enthalten
Programmgesteuertes Auffüllen eines Kombinationsfeld-Inhaltssteuerelements und eines Dropdownlisten-Inhaltssteuerelements
Verhindern, dass Benutzer eine angegebene Tabelle bearbeiten
Hinzufügen von Tabellen zur Bausteinauflistung einer Vorlage
Erstellen eines Inhaltssteuerelements, das die verfügbaren Bausteine in der Vorlage anzeigt
Hinweis: |
---|
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).
Microsoft Office Word 2007.
Visual Studio Tools for Office wird standardmäßig mit den aufgeführten Versionen von Visual Studio installiert. Wie Sie überprüfen können, ob die Software installiert ist, erfahren Sie in Installieren von Visual Studio Tools for Office.
Erstellen eines neuen Word-Vorlagenprojekts
Erstellen Sie eine Word 2007-Vorlage, damit Benutzer leicht ihre eigenen Kopien erstellen können.
So erstellen Sie ein neues Word 2007-Vorlagenprojekt
Erstellen Sie ein Word-Vorlagenprojekt mit dem Namen MyBuildingBlockTemplate unter Verwendung der Word-Vorlagenprojektvorlage für 2007 Microsoft Office System. Erstellen Sie im Assistenten in der Projektmappe ein neues Dokument. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte.
Visual Studio öffnet die neue Word-Vorlage im Designer und fügt dem Projektmappen-Explorer das MyBuildingBlockTemplate-Projekt hinzu.
Erstellen der Tabelle der Mitarbeiter
Erstellen Sie eine Tabelle, die vier verschiedene Typen von Inhaltssteuerelementen enthält, in die der Benutzer Informationen über einen Mitarbeiter eingeben kann.
So erstellen Sie die Tabelle der Mitarbeiter
Klicken Sie in der Word-Vorlage, die im Visual Studio-Designer gehostet wird, auf der Multifunktionsleiste auf die Registerkarte Einfügen.
Klicken Sie in der Gruppe Tabellen auf Tabelle, und fügen Sie eine Tabelle mit 2 Spalten und 4 Zeilen ein.
Geben Sie in der ersten Spalte Text ein, sodass sie der folgenden Spalte ähnelt:
Employee Name
Hire Date
Title
Picture
Klicken Sie in die erste Zelle in der zweiten Spalte (neben Employee Name).
Klicken Sie in der Multifunktionsleiste auf die Registerkarte Entwickler.
Hinweis: Wenn die Registerkarte Entwickler nicht sichtbar ist, müssen Sie diese zuerst anzeigen. Weitere Informationen finden Sie unter Gewusst wie: Anzeigen der Registerkarte "Entwickler" auf der Multifunktionsleiste.
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Text, um der ersten Zelle ein PlainTextContentControl hinzuzufügen.
Klicken Sie in die zweite Zelle in der zweiten Spalte (neben Hire Date).
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Datumsauswahl, um der zweiten Zelle ein DatePickerContentControl hinzuzufügen.
Klicken Sie in die dritte Zelle in der zweiten Spalte (neben Title).
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Kombinationsfeld, um der dritten Zelle ein ComboBoxContentControl hinzuzufügen.
Klicken Sie in die letzte Zelle in der zweiten Spalte (neben Picture).
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Bild-Inhaltssteuerelement, um der letzten Zelle ein PictureContentControl hinzuzufügen.
Erstellen der Tabelle mit Kundenfeedback
Erstellen Sie eine Tabelle, die drei verschiedene Typen von Inhaltssteuerelementen enthält, in die der Benutzer Informationen über Kundenfeedback eingeben kann.
So erstellen Sie die Tabelle mit Kundenfeedback
Klicken Sie in der Word-Vorlage in die Zeile unter der Tabelle der Mitarbeiter, die Sie bereits hinzugefügt haben, und drücken Sie die EINGABETASTE, um einen neuen Absatz hinzuzufügen.
Klicken Sie auf der Multifunktionsleiste auf die Registerkarte Einfügen.
Klicken Sie in der Gruppe Tabellen auf Tabelle, und fügen Sie eine Tabelle mit 2 Spalten und 3 Zeilen ein.
Geben Sie in der ersten Spalte Text ein, sodass sie der folgenden Spalte ähnelt:
Kundenname
Satisfaction Rating
Comments
Klicken Sie in die erste Zelle der zweiten Spalte (neben Customer Name).
Klicken Sie in der Multifunktionsleiste auf die Registerkarte Entwickler.
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Text, um der ersten Zelle ein PlainTextContentControl hinzuzufügen.
Klicken Sie in die zweite Zelle der zweiten Spalte (neben Satisfaction Rating).
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Dropdownliste, um der zweiten Zelle ein DropDownListContentControl hinzuzufügen.
Klicken Sie in die letzte Zelle der zweiten Spalte (neben Comments).
Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Rich-Text, um der letzten Zelle ein RichTextContentControl hinzuzufügen.
Programmgesteuertes Auffüllen des Kombinationsfelds und der Dropdownliste
Sie können Inhaltssteuerelemente zur Entwurfszeit initialisieren, indem Sie das Eigenschaftenfenster in Visual Studio verwenden. Sie können sie auch zur Laufzeit initialisieren, wodurch Sie die Möglichkeit haben, ihre Anfangszustände dynamisch festzulegen. Verwenden Sie in dieser exemplarischen Vorgehensweise Code zum Auffüllen der Einträge im ComboBoxContentControl und im DropDownListContentControl zur Laufzeit, damit Sie sehen, wie diese Objekte funktionieren.
So ändern Sie programmgesteuert die Benutzeroberfläche der Inhaltssteuerelemente
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ThisDocument.cs bzw. ThisDocument.vb, und klicken Sie dann auf Code anzeigen.
Fügen Sie der ThisDocument-Klasse folgenden Code hinzu. In diesem Code werden mehrere Objekte deklariert, die Sie später in dieser exemplarischen Vorgehensweise verwenden.
Private GroupControl1 As Microsoft.Office.Tools.Word.GroupContentControl Private BuildingBlockControl1 As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl Private BuildingBlockControl2 As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl
private Microsoft.Office.Tools.Word.GroupContentControl groupControl1; private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1; private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse den folgenden Code hinzu. Mit diesem Code werden dem ComboBoxContentControl und dem DropDownListContentControl Einträge in den Tabellen hinzugefügt, und der Platzhaltertext wird festgelegt, der in jedem dieser Steuerelemente angezeigt wird, bevor der Benutzer sie bearbeitet.
ComboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own" ComboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0) ComboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1) ComboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2) DropDownListContentControl1.PlaceholderText = _ "Choose a rating (1 lowest, 3 highest)" DropDownListContentControl1.DropDownListEntries.Add("1", "1", 0) DropDownListContentControl1.DropDownListEntries.Add("2", "2", 1) DropDownListContentControl1.DropDownListEntries.Add("3", "3", 2)
comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own"; comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0); comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1); comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2); dropDownListContentControl1.PlaceholderText = "Choose a rating (1 lowest, 3 highest)"; dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0); dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1); dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
Verhindern, dass Benutzer die Tabelle der Mitarbeiter bearbeiten
Verwenden Sie das bereits deklarierte GroupContentControl-Objekt, um die Tabelle der Mitarbeiter zu schützen. Nachdem die Tabelle geschützt wurde, können Benutzer immer noch die Inhaltssteuerelemente in der Tabelle bearbeiten. Der Text in der ersten Spalte kann jedoch nicht mehr geändert oder die Tabelle anderweitig geändert werden. Es ist beispielsweise nicht möglich, Zeilen oder Spalten hinzuzufügen oder zu löschen. Weitere Informationen dazu, wie Sie mit einem GroupContentControl einen Teil eines Dokuments schützen, finden Sie unter Inhaltssteuerelemente.
So verhindern Sie, dass Benutzer die Tabelle der Mitarbeiter bearbeiten
Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, folgenden Code hinzu. Mithilfe dieses Codes verhindern Sie, dass Benutzer die Tabelle der Mitarbeiter bearbeiten, indem die Tabelle im bereits deklarierten GroupContentControl-Objekt platziert wird.
Me.Tables(1).Select() GroupControl1 = Me.Controls.AddGroupContentControl("groupControl1")
this.Tables[1].Range.Select(); groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
Hinzufügen der Tabellen zur Bausteinauflistung
Fügen Sie die Tabellen einer Auflistung von Dokumentbausteinen in der Vorlage hinzu, sodass die Benutzer die Tabellen einfügen können, die Sie im Dokument erstellt haben. Weitere Informationen zu Dokumentbausteinen finden Sie unter Inhaltssteuerelemente.
So fügen Sie die Tabellen den Bausteinen in der Vorlage hinzu
Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, folgenden Code hinzu. Mit diesem Code werden neue Bausteine hinzugefügt, die die Tabellen zur Microsoft.Office.Interop.Word.BuildingBlockEntries-Auflistung enthalten, die wiederum alle wiederverwendbaren Bausteine in der Vorlage enthält. Die neuen Bausteine sind in einer neuen Kategorie mit dem Namen Employee and Customer Information definiert und dem Bautsteintyp Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1 zugeordnet.
Dim template1 As Word.Template = TryCast(Me.AttachedTemplate, Word.Template) If template1 IsNot Nothing Then template1.BuildingBlockEntries.Add("Employee Table", _ Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", _ Me.Tables(1).Range, InsertOptions:=Word.WdDocPartInsertOptions.wdInsertContent) template1.BuildingBlockEntries.Add("Customer Table", _ Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", _ Me.Tables(2).Range, InsertOptions:=Word.WdDocPartInsertOptions.wdInsertContent) End If
Word.Template template1 = this.AttachedTemplate as Word.Template; if (template1 != null) { object description = null; template1.BuildingBlockEntries.Add("Employee Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); template1.BuildingBlockEntries.Add("Customer Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); }
Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, folgenden Code hinzu. Mit diesem Code werden die Tabellen aus der Vorlage gelöscht. Die Tabellen werden nicht mehr benötigt, da Sie sie bereits dem Katalog der wiederverwendbaren Bausteine in der Vorlage hinzugefügt haben. Der Code stellt das Dokument zuerst in den Entwurfsmodus, sodass die geschützte Tabelle der Mitarbeiter gelöscht werden kann.
If Me.DesignMode = False Then Me.ToggleFormsDesign() End If Me.Tables(2).Delete() Me.Tables(1).Delete() Me.ToggleFormsDesign()
if (!this.DesignMode) { this.ToggleFormsDesign(); } this.Tables[2].Delete(); this.Tables[1].Delete(); this.ToggleFormsDesign();
Erstellen eines Inhaltssteuerelements, das die Bausteine anzeigt
Erstellen Sie ein Inhaltssteuerelement, das Zugriff auf die Bausteine (d. h. die Tabellen) gewährt, die Sie bereits erstellt haben. Benutzer können auf dieses Steuerelement klicken, um die Tabellen dem Dokument hinzuzufügen.
So erstellen Sie ein Inhaltssteuerelement, das die Bausteine anzeigt
Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem Code, den Sie im vorherigen Schritt hinzugefügt haben, folgenden Code hinzu. In diesem Code wird das bereits deklarierte BuildingBlockGalleryContentControl-Objekt initialisiert. Das BuildingBlockGalleryContentControl zeigt alle Bausteine an, die in der Kategorie Employee and Customer Information definiert wurden und denen der Bautsteintyp Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1 zugeordnet wurde.
BuildingBlockControl1 = Me.Controls.AddBuildingBlockGalleryContentControl( _ Me.Paragraphs(1).Range, "buildingBlockControl1") BuildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information" BuildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1 BuildingBlockControl1.PlaceholderText = "Choose your first building block" BuildingBlockControl2 = Me.Controls.AddBuildingBlockGalleryContentControl( _ Me.Paragraphs(2).Range, "buildingBlockControl2") BuildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information" BuildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1 BuildingBlockControl2.PlaceholderText = "Choose your second building block"
buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[1].Range, "buildingBlockControl1"); buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl1.PlaceholderText = "Choose your first building block"; buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[2].Range, "buildingBlockControl2"); buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl2.PlaceholderText = "Choose your second building block";
Testen des Projekts
Benutzer können im Dokument auf die Steuerelemente für den Bausteinkatalog klicken, um die Tabelle der Mitarbeiter oder die Tabelle mit Kundenfeedback einzufügen. In den Steuerelementen beider Tabellen können Benutzer Antworten eingeben oder auswählen. Außerdem können die Benutzer andere Abschnitte der Tabelle mit Kundenfeedback ändern. Es sollte jedoch nicht möglich sein, andere Abschnitte der Tabelle der Mitarbeiter zu ändern.
So testen Sie die Tabelle der Mitarbeiter
Drücken Sie F5, um das Projekt auszuführen.
Klicken Sie auf Choose your first building block, um das erste Steuerelement für Bausteinkataloge anzuzeigen.
Klicken Sie neben der Überschrift Custom Gallery 1 in dem Steuerelement auf den Dropdownpfeil, und wählen Sie Employee Table aus.
Klicken Sie in die Zelle rechts neben der Zelle Employee Name, und geben Sie einen Namen ein.
Vergewissern Sie sich, dass Sie dieser Zelle nur Text hinzufügen können. Das PlainTextContentControl ermöglicht nur das Hinzufügen von Text und keinen anderen Inhaltstypen, z. B. Grafiken oder Tabellen.
Klicken Sie in die Zelle rechts neben der Zelle Hire Date, und wählen Sie in der Datumsauswahl ein Datum aus.
Klicken Sie in die Zelle rechts neben der Zelle Title, und wählen Sie eine der Berufsbezeichnungen im Kombinationsfeld aus.
Geben Sie wahlweise eine Berufsbezeichnung ein, die nicht in der Liste aufgeführt ist. Dies ist möglich, da das ComboBoxContentControl es Benutzern ermöglicht, Einträge aus einer Liste auszuwählen oder eigene Einträge einzugeben.
Klicken Sie auf das Symbol in der Zelle rechts neben der Zelle Picture, und wechseln Sie zu einem Bild, um es anzuzeigen.
Versuchen Sie, der Tabelle Zeilen oder Spalten hinzuzufügen bzw. aus der Tabelle zu löschen. Stellen Sie sicher, dass Sie die Tabelle nicht ändern können. Das GroupContentControl verhindert, dass Sie Änderungen vornehmen können.
So testen Sie die Tabelle mit Kundenfeedback
Klicken Sie auf Choose your second building block, um das zweite Steuerelement für Bausteinkataloge anzuzeigen.
Klicken Sie neben der Überschrift Custom Gallery 1 in dem Steuerelement auf den Dropdownpfeil, und wählen Sie Customer Table aus.
Klicken Sie in die Zelle rechts neben der Zelle Customer Name, und geben Sie einen Namen ein.
Klicken Sie in die Zelle rechts neben der Zelle Satisfaction Rating, und wählen Sie eine der verfügbaren Optionen aus.
Stellen Sie sicher, dass Sie keinen eigenen Eintrag eingeben können. Das DropDownListContentControl ermöglicht es Benutzern nur, aus einer Liste von Einträgen auszuwählen.
Klicken Sie in die Zelle rechts neben der Zelle Comments, und geben Sie einige Kommentare ein.
Fügen Sie wahlweise anderen Inhalt außer Text hinzu, z. B. Grafiken oder eine eingebettete Tabelle. Dies ist möglich, da das RichTextContentControl es Benutzern ermöglicht, anderen Inhalt außer Text hinzuzufügen.
Überprüfen Sie, ob Sie der Tabelle Zeilen oder Spalten hinzuzufügen bzw. aus der Tabelle löschen können. Dies ist möglich, da Sie die Tabelle nicht geschützt haben, indem Sie sie in ein GroupContentControl setzen.
Schließen Sie die Vorlage.
Nächste Schritte
Weitere Informationen über die Verwendung von Inhaltssteuerelementen finden Sie im folgenden Thema:
- Binden von Inhaltssteuerelemente an Teile von XML-Code (auch benutzerdefinierte XML-Abschnitte genannt), die in einem Dokument eingebettet sind. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Binden von Inhaltssteuerelementen an benutzerdefinierte XML-Abschnitte.
Siehe auch
Aufgaben
Gewusst wie: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten
Gewusst wie: Schützen von Teilen von Dokumenten mithilfe von Inhaltssteuerelementen
Konzepte
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen
Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit
Hilfsmethoden für Hoststeuerelemente