Exemplarische Vorgehensweise: Erstellen einer Vorlage mithilfe von Inhaltssteuerelementen

 

Diese exemplarische Vorgehensweise veranschaulicht, wie eine Anpassung auf Dokumentebene erstellt wird, die Inhaltssteuerelemente zum Erstellen strukturierter und wiederverwendbarer Inhalte in einer Microsoft Office Word-Vorlage verwendet.

**Betrifft:** Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Word. Weitere Informationen finden Sie unter [Verfügbare Funktionen nach Office-Anwendung und Projekttyp](../Topic/Features%20Available%20by%20Office%20Application%20and%20Project%20Type.md).

Mithilfe von Word können Sie eine Auflistung wiederverwendbarer Dokumentbausteine erstellen, die als Bausteine bezeichnet werden. Diese exemplarische Vorgehensweise veranschaulicht, wie zwei Tabellen als Bausteine erstellt werden. Jede Tabelle enthält mehrere Inhaltssteuerelemente, die unterschiedliche Inhaltstypen aufweisen können, z. B. reinen Text oder Datumsangaben. Eine der Tabellen enthält Informationen über einen Mitarbeiter und die andere Kundenfeedback.

Nachdem Sie ein Dokument von der Vorlage erstellt haben, können Sie ihm mithilfe mehrerer BuildingBlockGalleryContentControl-Objekte, die die verfügbaren Bausteine in der Vorlage anzeigen, eine der beiden Tabellen hinzufügen.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Erstellen von Tabellen, die Inhaltssteuerelemente in einer Word-Vorlage enthalten, zur Entwurfszeit

  • Programmgesteuertes Auffüllen eines Kombinationsfeld-Inhaltssteuerelements und eines Dropdownlisten-Inhaltssteuerelements

  • Verhindern, dass Benutzer eine bestimmte Tabelle bearbeiten

  • Hinzufügen von Tabellen zur Bausteinauflistung einer Vorlage

  • Erstellen eines Inhaltssteuerelements, das die verfügbaren Bausteine in der Vorlage anzeigt

System_CAPS_ICON_note.jpg Hinweis


Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren von Visual Studio-IDE.

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Eine Edition von Visual Studio, die die Microsoft Office\-Entwicklungstools umfasst. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](../Topic/Configuring%20a%20Computer%20to%20Develop%20Office%20Solutions.md).
    
    

  • Microsoft Word.

Erstellen Sie eine Word-Vorlage, damit Benutzer leicht eigene Kopien erstellen können.

So erstellen Sie ein neues Word-Vorlagenprojekt

  1. Erstellen Sie ein Word-Vorlagenprojekt mit dem Namen "MyBuildingBlockTemplate". Erstellen Sie im Assistenten ein neues Dokument in der Projektmappe. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Office-Projekten in Visual Studio.

    Visual Studio öffnet die neue Word-Vorlage im Designer und fügt dem Projektmappen-Explorer das Projekt MyBuildingBlockTemplate hinzu.

Erstellen Sie eine Tabelle, die vier verschiedene Typen von Inhaltssteuerelementen enthält, in denen der Benutzer Informationen zu einem Mitarbeiter eingeben kann.

So erstellen Sie die Mitarbeitertabelle

  1. Klicken Sie in der Word-Vorlage, die im Visual Studio-Designer gehostet wird, im Menüband auf die Registerkarte Einfügen.

  2. Klicken Sie in der Gruppe Tabellen auf Tabelle, und fügen Sie eine Tabelle mit 2 Spalten und 4 Zeilen ein.

  3. Geben Sie in der ersten Spalte Text ein, sodass sie der folgenden Spalte ähnelt:

    Employee Name
    Hire Date
    Title
    Picture
  4. Klicken Sie in die erste Zelle in der zweiten Spalte (nebenEmployee Name).

  5. Klicken Sie im Menüband auf die Registerkarte Entwickler.

    System_CAPS_ICON_note.jpg 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.

  6. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Text PlainTextContentControl, um der ersten Zelle PlainTextContentControl hinzuzufügen.

  7. Klicken Sie in die zweite Zelle in der zweiten Spalte (nebenHire Date).

  8. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Datumsauswahl DatePickerContentControl, um der zweiten Zelle DatePickerContentControl hinzuzufügen.

  9. Klicken Sie in die dritte Zelle in der zweiten Spalte (nebenTitle).

  10. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Kombinationsfeld ComboBoxContentControl, um der dritten Zelle ComboBoxContentControl hinzuzufügen.

  11. Klicken Sie in die letzte Zelle in der zweiten Spalte (nebenPicture).

  12. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Bild-Inhaltssteuerelement PictureContentControl, um der letzten Zelle PictureContentControl hinzuzufügen.

Erstellen Sie eine Tabelle, die drei verschiedene Typen von Inhaltssteuerelementen enthält, in der der Benutzer Informationen zu Kundenfeedback eingeben kann.

So erstellen Sie die Kundenfeedback-Tabelle

  1. Klicken Sie in der Word-Vorlage in die Zeile nach der Mitarbeitertabelle, die Sie zuvor hinzugefügt haben, und drücken Sie EINGABE, um einen neuen Absatz hinzuzufügen.

  2. Klicken Sie im Menüband auf die Registerkarte Einfügen.

  3. Klicken Sie in der Gruppe Tabellen auf Tabelle, und fügen Sie eine Tabelle mit 2 Spalten und 3 Zeilen ein.

  4. Geben Sie in der ersten Spalte Text ein, sodass sie der folgenden Spalte ähnelt:

    Customer Name
    Satisfaction Rating
    Comments
  5. Klicken Sie in die erste Zelle der zweiten Spalte (nebenCustomer Name).

  6. Klicken Sie im Menüband auf die Registerkarte Entwickler.

  7. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Text PlainTextContentControl, um der ersten Zelle PlainTextContentControl hinzuzufügen.

  8. Klicken Sie in die zweite Zelle der zweiten Spalte (nebenSatisfaction Rating).

  9. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Dropdownliste DropDownListContentControl, um der zweiten Zelle DropDownListContentControl hinzuzufügen.

  10. Klicken Sie in die letzte Zelle der zweiten Spalte (neben Comments).

  11. Klicken Sie in der Gruppe Steuerelemente auf die Schaltfläche Rich-Text RichTextContentControl, um der letzten Zelle RichTextContentControl hinzuzufügen.

Sie können Inhaltssteuerelemente zur Entwurfszeit über das Fenster Eigenschaften in Visual Studio initialisieren. Sie können sie auch zur Laufzeit initialisieren, wodurch Sie deren Anfangszustände dynamisch festlegen können. In dieser exemplarischen Vorgehensweise verwenden Sie Code zum Auffüllen der Einträge in ComboBoxContentControl und DropDownListContentControl zur Laufzeit, damit Sie sehen können, wie diese Objekte funktionieren.

So ändern Sie die Benutzeroberfläche der Inhaltssteuerelemente programmgesteuert

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ThisDocument.cs oder ThisDocument.vb, und klicken Sie dann auf Code anzeigen.

  2. Fügen Sie der ThisDocument-Klasse folgenden Code hinzu. Dieser Code deklariert mehrere Objekte, die Sie später in dieser exemplarischen Vorgehensweise verwenden.

            private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
            private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
            private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    

  3. Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse den folgenden Code hinzu. Durch diesen Code werden ComboBoxContentControl und DropDownListContentControl in den Tabellen Einträge hinzugefügt und der Platzhaltertext festgelegt, der in den einzelnen Steuerelementen angezeigt wird, bevor sie vom Benutzer bearbeitet werden.

                    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);
    

Verwenden Sie das zuvor deklarierte GroupContentControl-Objekt, um die Mitarbeitertabelle zu schützen. Nachdem Sie die Tabelle geschützt haben, können Benutzer die Inhaltssteuerelemente in der Tabelle immer noch bearbeiten. Allerdings können sie in der ersten Spalte keinen Text bearbeiten oder die Tabelle auf andere Weise ändern, z. B. Zeilen und Spalten hinzufügen oder löschen. Weitere Informationen dazu, wie Sie Teile eines Dokuments mithilfe von GroupContentControl schützen, finden Sie unter Inhaltssteuerelemente.

So verhindern Sie, dass Benutzer die Mitarbeitertabelle bearbeiten

  1. Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem im vorherigen Schritt hinzugefügten Code den folgenden Code hinzu. Dieser Code verhindert, dass Benutzer die Mitarbeitertabelle bearbeiten, indem die Tabelle in das zuvor deklarierte GroupContentControl-Objekt eingefügt wird.

                    this.Tables[1].Range.Select();
                    groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    

Fügen Sie die Tabellen einer Auflistung von Dokumentbausteinen in der Vorlage hinzu, sodass Benutzer die Tabellen, die Sie erstellt haben, in das Dokument einfügen können. Weitere Informationen zu Dokumentbausteinen finden Sie unter Inhaltssteuerelemente.

So fügen Sie die Tabellen den Bausteinen in der Vorlage hinzu

  1. Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem im vorherigen Schritt hinzugefügten Code den folgenden Code hinzu. Durch diesen Code werden neue Bausteine, die die Tabellen enthalten, der Microsoft.Office.Interop.Word.BuildingBlockEntries-Auflistung hinzugefügt, die alle wiederverwendbaren Bausteine in der Vorlage enthält. Die neuen Bausteine werden in einer neuen Kategorie mit dem Namen Employee and Customer Information definiert, und ihnen wird der Bausteintyp Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1 zugewiesen.

                    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);
                    }
    

  2. Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem im vorherigen Schritt hinzugefügten Code den folgenden Code hinzu. Dieser Code löscht die Tabellen aus der Vorlage. Die Tabellen sind nicht mehr erforderlich, da Sie sie dem Katalog wiederverwendbarer Bausteine in der Vorlage hinzugefügt haben. Durch den Code wird das Dokument zuerst in den Entwurfsmodus versetzt, sodass die geschützte Mitarbeitertabelle gelöscht werden kann.

                    if (!this.FormsDesign)
                    {
                        this.ToggleFormsDesign();
                    }
                    this.Tables[2].Delete();
                    this.Tables[1].Delete();
                    this.ToggleFormsDesign();
    

Erstellen Sie ein Inhaltssteuerelement, das den Zugriff auf die Bausteine (d. h. die Tabellen) ermöglicht, die Sie zuvor 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

  1. Fügen Sie der ThisDocument_Startup-Methode der ThisDocument-Klasse nach dem im vorherigen Schritt hinzugefügten Code den folgenden Code hinzu. Dieser Code initialisiert das zuvor deklarierte BuildingBlockGalleryContentControl-Objekt. In BuildingBlockGalleryContentControl werden alle Bausteine angezeigt, die in der Kategorie Employee and Customer Information definiert sind und über den Bausteintyp Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1 verfügen.

                    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";
    

Benutzer können auf die Steuerelemente im Bausteinkatalog im Dokument klicken, um die Mitarbeiter- oder Kundenfeedback-Tabelle einzufügen. Benutzer können in den Inhaltssteuerelementen in beiden Tabellen Antworten eingeben oder auswählen. Benutzer können andere Teile der Kundenfeedback-Tabelle ändern, sollten aber nicht in der Lage sein, andere Teile der Mitarbeitertabelle zu ändern.

So testen Sie die Mitarbeitertabelle

  1. Drücken Sie F5, um das Projekt auszuführen.

  2. Klicken Sie auf Ersten Baustein auswählen, um das erste Inhaltssteuerelement aus dem Bausteinkatalog anzuzeigen.

  3. Klicken Sie auf den Dropdownpfeil neben der Überschrift Benutzerdefinierter Katalog 1 im Steuerelement, und wählen Sie Employee Table aus.

  4. Klicken Sie in die Zelle rechts neben der Zelle "Employee Name", und geben Sie einen Namen ein.

    Stellen Sie sicher, dass Sie dieser Zelle nur Text hinzufügen können. PlainTextContentControl ermöglicht es Benutzern, nur Text und keine anderen Inhaltstypen wie Grafiken oder Tabellen hinzuzufügen.

  5. Klicken Sie in die Zelle rechts neben der Zelle "Hire Date", und wählen Sie in der Datumsauswahl ein Datum aus.

  6. Klicken Sie in die Zelle rechts neben der Zelle "Title", und wählen Sie im Kombinationsfeld eine der Berufsbezeichnungen aus.

    Geben Sie optional eine Berufsbezeichnung ein, die nicht in der Liste enthalten ist. Dies ist möglich, weil ComboBoxContentControl Benutzern die Auswahl aus einer Liste von Einträgen oder die Eingabe eigener Einträge ermöglicht.

  7. Klicken Sie auf das Symbol in der Zelle rechts neben der Zelle "Picture", und navigieren Sie zu einem Bild, um es anzuzeigen.

  8. Versuchen Sie, der Tabelle Zeilen oder Spalten hinzuzufügen und Zeilen und Spalten aus der Tabelle zu löschen. Vergewissern Sie sich, dass Sie die Tabelle nicht ändern können. GroupContentControl verhindert, dass Sie Änderungen vornehmen.

So testen Sie die Kundenfeedback-Tabelle

  1. Klicken Sie auf Zweiten Baustein auswählen, um das zweite Inhaltssteuerelement aus dem Bausteinkatalog anzuzeigen.

  2. Klicken Sie auf den Dropdownpfeil neben der Überschrift Benutzerdefinierter Katalog 1 im Steuerelement, und wählen Sie Customer Table aus.

  3. Klicken Sie in die Zelle rechts neben der Zelle "Customer Name", und geben Sie einen Namen ein.

  4. 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 ihren eigenen Eintrag nicht eingeben können. DropDownListContentControl ermöglicht Benutzern nur die Auswahl aus einer Liste von Einträgen.

  5. Klicken Sie in die Zelle rechts neben der Zelle "Comments", und geben Sie Kommentare ein.

    Fügen Sie optional andere Inhalte als Text hinzu, z. B. Grafiken oder eine eingebettete Tabelle. Dies ist möglich, weil RichTextContentControl Benutzern das Hinzufügen anderer Inhalt als Text ermöglicht.

  6. Vergewissern Sie sich, dass Sie der Tabelle Zeilen oder Spalten hinzufügen und Zeilen und Spalten aus der Tabelle löschen können. Dies ist möglich, da Sie die Tabelle nicht geschützt haben, indem Sie sie in GroupContentControl eingefügt haben.

  7. Schließen Sie die Vorlage.

Weitere Informationen zur Verwendung von Inhaltssteuerelementen finden Sie in diesem Thema:

Automatisieren von Word mithilfe von erweiterten Objekten
Inhaltssteuerelemente
Gewusst wie: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten
Gewusst wie: Schützen von Teilen von Dokumenten mithilfe von Inhaltssteuerelementen
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen
Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit

Anzeigen: