Procédure pas à pas : créer un modèle à l’aide de contrôles de contenu

Cette procédure pas à pas montre comment créer une personnalisation au niveau du document qui utilise des contrôles de contenu pour créer un contenu structuré et réutilisable dans un modèle Microsoft Office Word.

S’applique à : les informations de cette rubrique s’appliquent aux projets au niveau du document pour Word. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Word vous permet de créer une collection de composants de documents réutilisables, nommées blocs de construction. Cette procédure pas à pas montre comment créer deux tableaux en tant que blocs de construction. Chaque tableau contient plusieurs contrôles de contenu qui peuvent contenir différents types de contenu, tels que du texte brut ou des dates. L'un des tableaux contient des informations sur un employé, et l'autre contient des commentaires des clients.

Après avoir créé un document à partir du modèle, vous pouvez ajouter l'un de ces tableaux dans le document en utilisant plusieurs objets BuildingBlockGalleryContentControl qui affichent les blocs de construction disponibles dans le modèle.

Cette procédure pas à pas décrit les tâches suivantes :

  • Création de tableaux contenant des contrôles de contenu dans un modèle Word au moment du design

  • Remplissage par programmation d’un contrôle de contenu de type zone de liste modifiable et d’un contrôle de contenu de type liste déroulante

  • Protection d'un tableau spécifié contre toute modification

  • Ajout de tableaux à la collection de blocs de construction d'un modèle

  • Création d'un contrôle de contenu affichant les blocs de construction disponibles dans le modèle

    Remarque

    Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

Créer un projet de modèle Word

Créez un modèle Word pour que les utilisateurs puissent créer aisément leurs propres copies.

Pour créer un projet de modèle Word

  1. Créez un projet de modèle Word avec le nom MyBuildingBlockTemplate. Dans l'Assistant, créez un nouveau document dans la solution. Pour plus d’informations, consultez Guide pratique pour créer des projets Bureau dans Visual Studio.

    Visual Studio ouvre le nouveau modèle Word dans le concepteur et ajoute le projet MyBuildingBlockTemplate à Explorateur de solutions.

Créer la table employee

Créez un tableau contenant quatre types différents de contrôles de contenu, dans lequel l'utilisateur peut entrer des informations sur un employé.

Pour créer le tableau Employé

  1. Dans le modèle Word hébergé dans le concepteur Visual Studio, dans le ruban, cliquez sur l’onglet Insertion .

  2. Dans le groupe Tables , cliquez sur Table et insérez une table avec deux colonnes et quatre lignes.

  3. Tapez un texte dans la première colonne afin qu'elle se présente de la façon suivante :

    Nom de l’employé
    Date d’embauche
    Titre
    Image
  4. Cliquez dans la première cellule de la deuxième colonne (en regard du nom de l’employé).

  5. Dans le ruban, cliquez sur l'onglet Développeur .

    Remarque

    Si l'onglet Développeur n'est pas visible, vous devez tout d'abord l'afficher. Pour plus d’informations, consultez Guide pratique pour afficher l’onglet Développeur du ruban.

  6. Dans le groupe Contrôles, cliquez sur le bouton PlainTextContentControl Texte pour ajouter une PlainTextContentControl à la première cellule.

  7. Cliquez sur la deuxième cellule de la deuxième colonne (en regard de Hire Date).

  8. Dans le groupe Contrôles, cliquez sur le bouton DatePickerContentControl Sélecteur de dates pour ajouter une DatePickerContentControl à la deuxième cellule.

  9. Cliquez sur la troisième cellule de la deuxième colonne (en regard du titre).

  10. Dans le groupe Contrôles, cliquez sur le bouton ComboBoxContentControl Zone de liste modifiable pour ajouter une ComboBoxContentControl à la troisième cellule.

  11. Cliquez sur la dernière cellule de la deuxième colonne (en regard de l’image).

  12. Dans le groupe Contrôles, cliquez sur le bouton PictureContentControl Contrôle de contenu image pour ajouter une PictureContentControl à la dernière cellule.

Créer la table de commentaires des clients

Créez un tableau contenant trois types différents de contrôles de contenu, dans lequel l'utilisateur peut entrer des informations sur les commentaires des clients.

Pour créer le tableau Commentaires des clients

  1. Dans le modèle Word, cliquez sur la ligne après la table des employés que vous avez ajoutée précédemment, puis appuyez sur Entrée pour ajouter un nouveau paragraphe.

  2. Dans le ruban, cliquez sur l’onglet Insertion .

  3. Dans le groupe Tables , cliquez sur Table et insérez une table avec deux colonnes et trois lignes.

  4. Tapez un texte dans la première colonne afin qu'elle se présente de la façon suivante :

    Nom du client
    Évaluation de la satisfaction
    Commentaires
  5. Cliquez dans la première cellule de la deuxième colonne (en regard du nom du client).

  6. Dans le ruban, cliquez sur l'onglet Développeur .

  7. Dans le groupe Contrôles, cliquez sur le bouton PlainTextContentControl Texte pour ajouter une PlainTextContentControl à la première cellule.

  8. Cliquez dans la deuxième cellule de la deuxième colonne (en regard de Satisfaction Rating).

  9. Dans le groupe Contrôles, cliquez sur le bouton DropDownListContentControl Liste déroulante pour ajouter un DropDownListContentControl à la deuxième cellule.

  10. Cliquez dans la dernière cellule de la deuxième colonne (en regard de Commentaires).

  11. Dans le groupe Contrôles, cliquez sur le bouton RichTextContentControl Texte enrichi pour ajouter une RichTextContentControl à la dernière cellule.

Remplir la zone de liste déroulante et la liste déroulante par programmation

Vous pouvez initialiser des contrôles de contenu au moment du design à l’aide de la fenêtre Propriétés dans Visual Studio. Vous pouvez également les initialiser au moment de l’exécution, ce qui vous permet de définir dynamiquement leurs états initiaux. Pour cette procédure pas à pas, utilisez du code pour remplir les entrées dans l’exécution et DropDownListContentControl au moment de l’exécution ComboBoxContentControl afin de voir comment ces objets fonctionnent.

Pour modifier par programmation l'interface utilisateur des contrôles de contenu

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument.cs ou ThisDocument.vb, puis cliquez sur Afficher le code.

  2. Ajoutez le code suivant à la classe ThisDocument . Ce code déclare plusieurs objets que vous utiliserez ultérieurement dans cette procédure pas à pas.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Ajoutez le code suivant à la méthode ThisDocument_Startup de la classe ThisDocument. Ce code ajoute des entrées aux contrôles ComboBoxContentControl et DropDownListContentControl dans les tableaux, et définit le texte de l'espace réservé affiché dans chacun de ces contrôles avant que l'utilisateur les modifie.

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

Empêcher les utilisateurs de modifier la table employé

Utilisez l'objet GroupContentControl que vous avez déclaré précédemment pour protéger le tableau Employé. Une fois le tableau protégé, les utilisateurs peuvent encore modifier les contrôles de contenu du tableau. Toutefois, ils ne peuvent plus modifier le texte de la première colonne ni modifier le tableau d'une quelconque autre manière, par exemple en ajoutant ou en supprimant des lignes et des colonnes. Pour plus d’informations sur l’utilisation d’une GroupContentControl partie d’un document, consultez Contrôles de contenu.

Pour empêcher les utilisateurs de modifier le tableau Employé

  1. Ajoutez le code suivant à la méthode ThisDocument_Startup de la classe ThisDocument, après le code que vous avez ajouté à l'étape précédente. Ce code empêche les utilisateurs de modifier le tableau Employé en plaçant celui-ci dans l'objet GroupContentControl que vous avez déclaré précédemment.

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

Ajouter les tables à la collection de blocs de construction

Ajoutez les tableaux à une collection de blocs de construction de document dans le modèle afin que les utilisateurs puissent insérer les tableaux que vous avez créés dans le document. Pour plus d’informations sur les blocs de construction de documents, consultez Contrôles de contenu.

Pour ajouter les tableaux aux blocs de construction du modèle

  1. Ajoutez le code suivant à la méthode ThisDocument_Startup de la classe ThisDocument, après le code que vous avez ajouté à l'étape précédente. Ce code ajoute de nouveaux blocs de construction qui contiennent les tables à Microsoft. Bureau. Collection Interop.Word.BuildingBlockEntries, qui contient tous les blocs de construction réutilisables dans le modèle. Les nouveaux blocs de construction sont définis dans une nouvelle catégorie nommée Employee and Customer Information et sont affectés au type Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1de bloc de construction .

    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. Ajoutez le code suivant à la méthode ThisDocument_Startup de la classe ThisDocument, après le code que vous avez ajouté à l'étape précédente. Ce code supprime les tableaux dans le modèle. Ces tableaux ne sont plus nécessaires car vous les avez ajoutés à la galerie des blocs de construction réutilisables du modèle. Le code place en premier lieu le document en mode Création pour permettre la suppression du tableau protégé Employé.

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

Créer un contrôle de contenu qui affiche les blocs de construction

Créez un contrôle de contenu permettant d'accéder aux blocs de construction (autrement dit, aux tableaux) que vous avez créés précédemment. Les utilisateurs peuvent cliquer sur ce contrôle pour ajouter les tableaux dans le document.

Pour créer un contrôle de contenu affichant les blocs de construction

  1. Ajoutez le code suivant à la méthode ThisDocument_Startup de la classe ThisDocument, après le code que vous avez ajouté à l'étape précédente. Ce code initialise l'objet BuildingBlockGalleryContentControl déclaré précédemment. Le BuildingBlockGalleryContentControl bloc de construction affiche tous les blocs de construction définis dans la catégorie Employee and Customer Information et qui ont le type Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1de bloc de construction .

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

Tester le projet

Les utilisateurs peuvent cliquer sur les contrôles de la galerie des blocs de construction du document pour insérer le tableau Employé ou le tableau Commentaires des clients. Ils peuvent taper ou sélectionner des réponses dans les contrôles de contenu des deux tableaux. Ils peuvent aussi modifier d'autres parties du tableau Commentaires des clients, mais ils ne doivent pas pouvoir modifier d'autres parties du tableau Employé.

Pour tester le tableau Employé

  1. Appuyez sur F5 pour exécuter le projet.

  2. Cliquez sur Choisir votre premier bloc de construction pour afficher le premier contrôle de contenu de la galerie de blocs de construction.

  3. Cliquez sur la flèche déroulante en regard du titre Galerie personnalisée 1 dans le contrôle, puis sélectionnez Employee Table.

  4. Cliquez dans la cellule à droite de la cellule Nom de l’employé et tapez un nom.

    Vérifiez que vous pouvez ajouter uniquement du texte dans cette cellule. Le contrôle PlainTextContentControl permet aux utilisateurs d'ajouter du texte uniquement, pas d'autres types de contenu tels que des illustrations ou des tableaux.

  5. Cliquez dans la cellule à droite de la cellule Hire Date et sélectionnez une date dans le sélecteur de dates.

  6. Cliquez dans la cellule à droite de la cellule Titre , puis sélectionnez l’un des titres du travail dans la zone de liste déroulante.

    Si vous le souhaitez, tapez le nom d'une fonction qui ne figure pas dans la liste. Cela est possible car le contrôle ComboBoxContentControl permet aux utilisateurs d'effectuer un choix dans une liste d'entrées ou de taper leurs propres entrées.

  7. Cliquez sur l’icône dans la cellule à droite de la cellule Image et accédez à une image pour l’afficher.

  8. Essayez d'ajouter et de supprimer des lignes et des colonnes dans le tableau. Vérifiez que vous ne pouvez pas modifier le tableau. L'objet GroupContentControl vous empêche d'apporter la moindre modification.

Pour tester le tableau Commentaires des clients

  1. Cliquez sur Choisir votre deuxième bloc de construction pour afficher le deuxième contrôle de contenu de la galerie de blocs de construction.

  2. Cliquez sur la flèche déroulante en regard du titre Galerie personnalisée 1 dans le contrôle, puis sélectionnez Table client.

  3. Cliquez dans la cellule à droite de la cellule Customer Name et tapez un nom.

  4. Cliquez dans la cellule à droite de la cellule Satisfaction Rating et sélectionnez l’une des options disponibles.

    Vérifiez que vous ne pouvez pas taper votre propre entrée. L'objet DropDownListContentControl permet uniquement aux utilisateurs d'effectuer un choix dans une liste d'entrées.

  5. Cliquez dans la cellule à droite de la cellule Commentaires et tapez des commentaires.

    Si vous le souhaitez, ajoutez du contenu autre que du texte, comme une illustration ou un tableau incorporé. Cela est possible car l'objet RichTextContentControl permet aux utilisateurs d'ajouter du contenu autre que du texte.

  6. Vérifiez que vous pouvez ajouter et supprimer des lignes et des colonnes dans le tableau. Cela est possible parce que vous n'avez pas protégé le tableau en le plaçant dans un objet GroupContentControl.

  7. Fermez le modèle.

Étapes suivantes

Pour plus d'informations sur l'utilisation des contrôles de contenu, consultez la rubrique suivante :