Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
En utgåva av Visual Studio som innehåller Utvecklarverktyg för Microsoft Office. Mer information finns i Konfigurera en dator för att utveckla Office-lösningar.
Microsoft Word.
Skapa ett nytt Word-mallprojekt
Skapa en Word-mall så att användarna enkelt kan skapa sina egna kopior.
Skapa ett nytt Word-mallprojekt
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
I Den Word-mall som finns i Visual Studio-designern klickar du på fliken Infoga i menyfliksområdet.
I gruppen Tabeller klickar du på Tabell och infogar en tabell med två kolumner och fyra rader.
Skriv text i den första kolumnen så att den liknar följande kolumn:
Medarbetarens namn Anställningsdatum Titel Bild Klicka i den första cellen i den andra kolumnen (bredvid Medarbetarens namn).
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.
I gruppen Kontroller klickar du på textknappen
 för att lägga till en PlainTextContentControl i den första cellen.Klicka på den andra cellen i den andra kolumnen (bredvid Anställningsdatum).
I gruppen Kontroller klickar du på knappen Datumväljaren
 för att lägga till en DatePickerContentControl i den andra cellen.Klicka på den tredje cellen i den andra kolumnen (bredvid Rubrik).
I gruppen Kontroller klickar du på Kombinationsruta
 för att lägga till en ComboBoxContentControl i den tredje cellen.Klicka på den sista cellen i den andra kolumnen (bredvid Bild).
I gruppen Kontroller klickar du på knappen Bildinnehållskontroll
 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
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.
Klicka på fliken Infoga i menyfliksområdet.
I gruppen Tabeller klickar du på Tabell och infogar en tabell med två kolumner och tre rader.
Skriv text i den första kolumnen så att den liknar följande kolumn:
Kundens namn Nöjdhetsklassificering Comments Klicka i den första cellen i den andra kolumnen (bredvid Kundnamn).
Klicka på fliken Utvecklare i menyfliksområdet.
I gruppen Kontroller klickar du på textknappen
 för att lägga till en PlainTextContentControl i den första cellen.Klicka i den andra cellen i den andra kolumnen (bredvid Nöjdhetsklassificering).
I gruppen Kontroller klickar du på knappen Drop-Down List
 för att lägga till en DropDownListContentControl i den andra cellen.Klicka i den sista cellen i den andra kolumnen (bredvid Kommentarer).
I gruppen Kontroller klickar du på rtf-knappen
 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
Högerklicka på ThisDocument.cs eller ThisDocument.vb i Solution Explorer och klicka sedan på Visa kod.
Lägg till följande kod i
ThisDocumentklassen. Den här koden deklarerar flera objekt som du kommer att använda senare i den här genomgången.Lägg till följande kod i
ThisDocument_Startup-metoden förThisDocumentklassen. 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
Lägg till följande kod i
ThisDocument_Startup-metoden förThisDocumentklassen 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.
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
Lägg till följande kod i
ThisDocument_Startup-metoden förThisDocumentklassen 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 byggblockstypenMicrosoft.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); }Lägg till följande kod i
ThisDocument_Startup-metoden förThisDocumentklassen 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.
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
Lägg till följande kod i
ThisDocument_Startup-metoden förThisDocumentklassen 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 byggblockstypenMicrosoft.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
Tryck på F5 för att köra projektet.
Klicka på Välj ditt första byggblock för att visa den första innehållskontrollen för byggblocksgalleriet.
Klicka på listrutepilen bredvid rubriken Anpassat galleri 1 i kontrollen och välj Personaltabell.
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.
Klicka i cellen till höger om cellen Anställningsdatum och välj ett datum i datumväljaren.
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.
Klicka på ikonen i cellen till höger om cellen Bild och bläddra till en bild för att visa den.
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.
Klicka på Välj ditt andra byggblock för att visa innehållskontrollen för det andra byggblocksgalleriet.
Klicka på listrutepilen bredvid rubriken Anpassat galleri 1 i kontrollen och välj Kundtabell.
Klicka i cellen till höger om cellen Kundnamn och skriv ett namn.
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.
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.
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.
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:
- Binda innehållskontroller till delar av XML, även kallade anpassade XML-delar, som är inbäddade i ett dokument. Mer information finns i Genomgång: Binda innehållskontroller till anpassade XML-delar.
 
Relaterat innehåll
- Automatisera Word med hjälp av utökade objekt
 - Innehållskontroller
 - Anvisningar: Lägga till innehållskontroller i Word-dokument
 - Gör så här: Skydda delar av dokument med hjälp av innehållskontroller
 - Översikt över värdobjekt och värdkontroller
 - Programmatiska begränsningar för värdobjekt och värdkontroller
 - Lägg till kontroller i Office-dokument under körning