Dela via


Genomgång: Skapa en mall med hjälp av innehållskontroller

Den här genomgången visar hur du skapar en anpassning på dokumentnivå som använder innehållskontroller för att skapa strukturerat och återanvändbart innehåll i en Microsoft Office Word-mall.

Gäller för: Informationen i det här avsnittet gäller för projekt på dokumentnivå för Word. Mer information finns i Funktioner som är tillgängliga efter Office-program och projekttyp.

Med Word kan du skapa en samling återanvändbara dokumentdelar med namnet byggstenar. Den här genomgången visar hur du skapar två tabeller som byggstenar. Varje tabell innehåller flera innehållskontroller som kan innehålla olika typer av innehåll, till exempel oformaterad text eller datum. En av tabellerna innehåller information om en anställd och den andra tabellen innehåller kundfeedback.

När du har skapat ett dokument från mallen kan du lägga till någon av tabellerna i dokumentet med hjälp av flera BuildingBlockGalleryContentControl objekt som visar tillgängliga byggstenar i mallen.

I den här genomgången tas följande aktiviteter upp:

  • Skapa tabeller som innehåller innehållskontroller i en Word-mall vid designtillfället.

  • Fylla i innehållskontroll för kombinationsruta och innehållskontroll för listruta genom programmering.

  • Hindrar användare från att redigera en angiven tabell.

  • Lägga till tabeller i byggblockssamlingen för en mall.

  • Skapa en innehållskontroll som visar tillgängliga byggstenar i mallen.

    Anmärkning

    Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassa IDE.

Förutsättningar

Du behöver följande komponenter för att slutföra den här genomgången:

Skapa ett nytt Word-mallprojekt

Skapa en Word-mall så att användarna enkelt kan skapa sina egna kopior.

Skapa ett nytt Word-mallprojekt

  1. Skapa ett Word-mallprojekt med namnet MyBuildingBlockTemplate. I guiden, skapa ett nytt dokument i lösningen. Mer information finns i Så här skapar du Office-projekt i Visual Studio.

    Visual Studio öppnar den nya Word-mallen i designern och lägger till projektet MyBuildingBlockTemplate i Solution Explorer.

Skapa tabellen anställd

Skapa en tabell som innehåller fyra olika typer av innehållskontroller där användaren kan ange information om en anställd.

För att skapa medarbetartabellen

  1. I Den Word-mall som finns i Visual Studio-designern klickar du på fliken Infoga i menyfliksområdet.

  2. I gruppen Tabeller klickar du på Tabell och infogar en tabell med två kolumner och fyra rader.

  3. Skriv text i den första kolumnen så att den liknar följande kolumn:

    Medarbetarens namn
    Anställningsdatum
    Titel
    Bild
  4. Klicka i den första cellen i den andra kolumnen (bredvid Medarbetarens namn).

  5. Klicka på fliken Utvecklare i menyfliksområdet.

    Anmärkning

    Om fliken Utvecklare inte visas måste du först visa den. Mer information finns i Så här: Visa fliken Utvecklare i menyfliksområdet.

  6. I gruppen Kontroller klickar du på textknappenPlainTextContentControl för att lägga till en PlainTextContentControl i den första cellen.

  7. Klicka på den andra cellen i den andra kolumnen (bredvid Anställningsdatum).

  8. I gruppen Kontroller klickar du på knappen DatumväljarenDatePickerContentControl för att lägga till en DatePickerContentControl i den andra cellen.

  9. Klicka på den tredje cellen i den andra kolumnen (bredvid Rubrik).

  10. I gruppen Kontroller klickar du på KombinationsrutaComboBoxContentControl för att lägga till en ComboBoxContentControl i den tredje cellen.

  11. Klicka på den sista cellen i den andra kolumnen (bredvid Bild).

  12. I gruppen Kontroller klickar du på knappen BildinnehållskontrollPictureContentControl för att lägga till en PictureContentControl i den sista cellen.

Skapa kundfeedbacktabellen

Skapa en tabell som innehåller tre olika typer av innehållskontroller där användaren kan ange kundfeedbackinformation.

Så här skapar du kundfeedbacktabellen

  1. I Word-mallen klickar du på raden efter den personaltabell som du lade till tidigare och trycker på Retur för att lägga till ett nytt stycke.

  2. Klicka på fliken Infoga i menyfliksområdet.

  3. I gruppen Tabeller klickar du på Tabell och infogar en tabell med två kolumner och tre rader.

  4. Skriv text i den första kolumnen så att den liknar följande kolumn:

    Kundens namn
    Nöjdhetsklassificering
    Comments
  5. Klicka i den första cellen i den andra kolumnen (bredvid Kundnamn).

  6. Klicka på fliken Utvecklare i menyfliksområdet.

  7. I gruppen Kontroller klickar du på textknappenPlainTextContentControl för att lägga till en PlainTextContentControl i den första cellen.

  8. Klicka i den andra cellen i den andra kolumnen (bredvid Nöjdhetsklassificering).

  9. I gruppen Kontroller klickar du på knappen Drop-Down ListDropDownListContentControl för att lägga till en DropDownListContentControl i den andra cellen.

  10. Klicka i den sista cellen i den andra kolumnen (bredvid Kommentarer).

  11. I gruppen Kontroller klickar du på rtf-knappenRichTextContentControl för att lägga till en RichTextContentControl i den sista cellen.

Fyll i kombinationsrutan och listrutan programmatiskt

Du kan initiera innehållskontroller vid designtillfället med hjälp av fönstret Egenskaper i Visual Studio. Du kan också initiera dem vid körning, vilket gör att du kan ange deras inledande tillstånd dynamiskt. I denna genomgång kommer du att använda kod för att fylla i posterna i ComboBoxContentControl och DropDownListContentControl vid körning så att du kan se hur dessa objekt fungerar.

Så här ändrar du användargränssnittet för innehållskontrollerna programmatiskt

  1. Högerklicka på ThisDocument.cs eller ThisDocument.vb i Solution Explorer och klicka sedan på Visa kod.

  2. Lägg till följande kod i ThisDocument klassen. Den här koden deklarerar flera objekt som du kommer att använda senare i den här genomgången.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Lägg till följande kod i ThisDocument_Startup -metoden för ThisDocument klassen. Den här koden lägger till poster i tabellerna ComboBoxContentControl och DropDownListContentControl och anger platshållartexten som visas i var och en av dessa kontroller innan användaren redigerar dem.

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

Hindra användare från att redigera arbetstagartabellen

Använd det GroupContentControl objekt som du deklarerade tidigare för att skydda arbetstagartabellen. När du har skyddat tabellen kan användarna fortfarande redigera innehållskontrollerna i tabellen. De kan dock inte redigera text i den första kolumnen eller ändra tabellen på andra sätt, till exempel genom att lägga till eller ta bort rader och kolumner. Mer information om hur du använder en GroupContentControl för att skydda en del av ett dokument finns i Innehållskontroller.

Så här hindrar du användare från att redigera tabellen med anställda

  1. Lägg till följande kod i ThisDocument_Startup -metoden för ThisDocument klassen efter koden som du lade till i föregående steg. Den här koden hindrar användare från att redigera tabellen med anställda genom att placera tabellen i det GroupContentControl objekt som du deklarerade tidigare.

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

Lägg till tabellerna i byggblockssamlingen

Lägg till tabellerna i en samling dokumentbyggblock i mallen så att användarna kan infoga de tabeller som du har skapat i dokumentet. Mer information om dokumentbyggblock finns i Innehållskontroller.

Så här lägger du till tabellerna i byggblocken i mallen

  1. Lägg till följande kod i ThisDocument_Startup -metoden för ThisDocument klassen efter koden som du lade till i föregående steg. Den här koden lägger till nya byggstenar som innehåller tabellerna i samlingen Microsoft.Office.Interop.Word.BuildingBlockEntries, som innehåller alla återanvändbara byggstenar i mallen. De nya byggblocken definieras i en ny kategori med namnet Anställd och Kundinformation och tilldelas byggblockstypen Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.

    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. Lägg till följande kod i ThisDocument_Startup -metoden för ThisDocument klassen efter koden som du lade till i föregående steg. Den här koden tar bort tabellerna från mallen. Tabellerna är inte längre nödvändiga eftersom du har lagt till dem i galleriet med återanvändbara byggstenar i mallen. Koden placerar först dokumentet i designläge så att den skyddade arbetstagartabellen kan tas bort.

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

Skapa en innehållskontroll som visar byggstenarna

Skapa en innehållskontroll som ger åtkomst till de byggstenar (dvs. tabellerna) som du skapade tidigare. Användare kan klicka på den här kontrollen för att lägga till tabellerna i dokumentet.

Så här skapar du en innehållskontroll som visar byggstenarna

  1. Lägg till följande kod i ThisDocument_Startup -metoden för ThisDocument klassen efter koden som du lade till i föregående steg. Den här koden initierar det BuildingBlockGalleryContentControl objekt som du deklarerade tidigare. BuildingBlockGalleryContentControl Visar alla byggstenar som definieras i kategorin Anställd och Kundinformation och som har byggblockstypen Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.

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

Testa projektet

Användare kan klicka på gallerikontrollerna för byggblock i dokumentet för att infoga tabellen med anställda eller kundfeedbacktabellen. Användare kan skriva eller välja svar i innehållskontrollerna i båda tabellerna. Användare kan ändra andra delar av kundfeedbacktabellen, men de bör inte kunna ändra andra delar av personaltabellen.

Att testa medarbetartabellen

  1. Tryck på F5 för att köra projektet.

  2. Klicka på Välj ditt första byggblock för att visa den första innehållskontrollen för byggblocksgalleriet.

  3. Klicka på listrutepilen bredvid rubriken Anpassat galleri 1 i kontrollen och välj Personaltabell.

  4. Klicka i cellen till höger om cellen Anställdnamn och skriv ett namn.

    Kontrollera att du bara kan lägga till text i den här cellen. PlainTextContentControl Tillåter användare att bara lägga till text, inte andra typer av innehåll, till exempel konst eller en tabell.

  5. Klicka i cellen till höger om cellen Anställningsdatum och välj ett datum i datumväljaren.

  6. Klicka i cellen till höger om cellen Rubrik och välj en av jobbrubrikerna i kombinationsrutan.

    Du kan också ange namnet på en jobbtitel som inte finns i listan. Detta är möjligt eftersom ComboBoxContentControl gör det möjligt för användare att välja från en lista med poster eller att skriva sina egna poster.

  7. Klicka på ikonen i cellen till höger om cellen Bild och bläddra till en bild för att visa den.

  8. Försök att lägga till rader eller kolumner i tabellen och försök ta bort rader och kolumner från tabellen. Kontrollera att du inte kan ändra tabellen. GroupContentControl Hindrar dig från att göra några ändringar.

Testa kundfeedbacktabellen.

  1. Klicka på Välj ditt andra byggblock för att visa innehållskontrollen för det andra byggblocksgalleriet.

  2. Klicka på listrutepilen bredvid rubriken Anpassat galleri 1 i kontrollen och välj Kundtabell.

  3. Klicka i cellen till höger om cellen Kundnamn och skriv ett namn.

  4. Klicka i cellen till höger om cellen Nöjdhetsklassificering och välj ett av de tillgängliga alternativen.

    Kontrollera att du inte kan skriva en egen post. DropDownListContentControl tillåter endast användare att välja från en lista med poster.

  5. Klicka i cellen till höger om cellen Kommentarer och skriv några kommentarer.

    Du kan också lägga till annat innehåll än text, till exempel konst eller en inbäddad tabell. Detta är möjligt eftersom RichTextContentControl gör det möjligt för användare att lägga till annat innehåll än text.

  6. Kontrollera att du kan lägga till rader eller kolumner i tabellen och att du kan ta bort rader och kolumner från tabellen. Detta är möjligt eftersom du inte har skyddat tabellen genom att placera den i en GroupContentControl.

  7. Stäng mallen.

Nästa steg

Du kan lära dig mer om hur du använder innehållskontroller från det här avsnittet: