Partager via


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 du contenu structuré et réutilisable dans un modèle Microsoft Office Word.

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

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 tables en tant que blocs de construction. Chaque table contient plusieurs contrôles de contenu qui peuvent contenir différents types de contenu, tels que du texte brut ou des dates. L’une des tables contient des informations sur un employé et l’autre contient des commentaires sur les clients.

Après avoir créé un document à partir du modèle, vous pouvez ajouter l’une des tables au document à l’aide de plusieurs BuildingBlockGalleryContentControl objets, 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 tables qui contiennent des contrôles de contenu dans un modèle Word au moment du design.

  • Remplir un contrôle de contenu de zone de liste combinée et un contrôle de contenu de liste déroulante par programmation.

  • Empêcher les utilisateurs de modifier une table spécifiée.

  • Ajout de tables à la collection de blocs de construction d’un modèle.

  • Création d’un contrôle de contenu qui affiche les blocs de construction disponibles dans le modèle.

    Note

    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.

Prerequisites

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 permettre aux utilisateurs de créer facilement 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 Office dans Visual Studio.

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

Créer la table employee

Créez une table qui contient quatre types de contrôles de contenu différents dans lesquels l’utilisateur peut entrer des informations sur un employé.

Pour créer la table des employés

  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 du texte dans la première colonne afin qu’il ressemble à la colonne suivante :

    Nom de l’employé
    Date d’embauche
    Titre
    Picture
  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 .

    Note

    Si l’onglet Développeur n’est pas visible, vous devez 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 TextePlainTextContentControl 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 Date PickerDatePickerContentControl pour ajouter un 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 pour ajouter une ComboBoxContentControl à la troisième cellule.ComboBoxContentControl

  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 Contrôle de contenu d'image pour ajouter une PictureContentControl à la dernière cellule.

Créer la table de commentaires des clients

Créez une table qui contient trois types de contrôles de contenu différents dans lesquels l’utilisateur peut entrer des informations sur les commentaires des clients.

Pour créer la table de 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 du texte dans la première colonne afin qu’il ressemble à la colonne 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 TextePlainTextContentControl 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 liste déroulanteDropDownListContentControl pour ajouter une 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 Rich TextRichTextContentControlRichTextContentControl pour ajouter une RichTextContentControl à la dernière cellule.

Remplir la boîte combinée 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 ComboBoxContentControl et DropDownListContentControl au moment de l’exécution afin de voir comment fonctionnent ces objets.

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

  1. Dans l’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 ThisDocument classe. Ce code déclare plusieurs objets que vous utiliserez plus loin 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 ThisDocument_Startup méthode de la ThisDocument classe. Ce code ajoute des entrées aux ComboBoxContentControl et DropDownListContentControl, et définit le texte d'espace réservé affiché dans chacun de ces contrôles avant que l'utilisateur ne 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 le tableau employé

Utilisez l’objet GroupContentControl que vous avez déclaré précédemment pour protéger la table des employé(e)s. Après avoir protégé la table, les utilisateurs peuvent toujours modifier les contrôles de contenu dans la table. Toutefois, ils ne peuvent pas modifier le texte dans la première colonne ou modifier la table de différentes façons, telles que l’ajout ou la suppression de lignes et de colonnes. Pour plus d’informations sur l’utilisation d’une GroupContentControl pour protéger une partie d’un document, consultez Contrôles de contenu.

Pour empêcher les utilisateurs de modifier la table des employés

  1. Ajoutez le code suivant à la ThisDocument_Startup méthode de la ThisDocument classe, après le code que vous avez ajouté à l’étape précédente. Ce code empêche les utilisateurs de modifier la table employee en plaçant la table 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 tables à une collection de blocs de construction de documents dans le modèle afin que les utilisateurs puissent insérer les tables que vous avez créées dans le document. Pour plus d’informations sur les blocs de construction de documents, consultez Contrôles de contenu.

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

  1. Ajoutez le code suivant à la ThisDocument_Startup méthode de la ThisDocument classe, 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 à la collection Microsoft.Office.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 ThisDocument_Startup méthode de la ThisDocument classe, après le code que vous avez ajouté à l’étape précédente. Ce code supprime les tables du modèle. Les tables ne sont plus nécessaires, car vous les avez ajoutées à la galerie de blocs de construction réutilisables dans le modèle. Le code place d’abord le document en mode création afin que la table d’employés protégée puisse être supprimée.

    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 qui fournit l’accès aux blocs de construction (c’est-à-dire les tables) que vous avez créées précédemment. Les utilisateurs peuvent cliquer sur ce contrôle pour ajouter les tables au document.

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

  1. Ajoutez le code suivant à la ThisDocument_Startup méthode de la ThisDocument classe, après le code que vous avez ajouté à l’étape précédente. Ce code initialise l’objet BuildingBlockGalleryContentControl que vous avez déclaré précédemment. L'affichage BuildingBlockGalleryContentControl affiche tous les blocs de construction définis dans la catégorie Informations sur les employés et les clients et qui ont le type de bloc de construction 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";
    

Tester le projet

Les utilisateurs peuvent cliquer sur les contrôles de la galerie de composants dans le document pour insérer la table des employés ou la table des commentaires des clients. Les utilisateurs peuvent taper ou sélectionner des réponses dans les contrôles de contenu dans les deux tables. Les utilisateurs peuvent modifier les autres parties de la table des commentaires des clients, mais ils ne devraient pas pouvoir modifier les autres parties de la table des employés.

Pour tester la table des employés

  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 ne pouvez ajouter que du texte à cette cellule. Le PlainTextContentControl permet aux utilisateurs d’ajouter uniquement du texte, pas d’autres types de contenu tels que des illustrations ou un tableau.

  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’un titre de travail qui n’est pas dans la liste. Cela est possible, car les ComboBoxContentControl utilisateurs peuvent sélectionner dans une liste d’entrées ou 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 des lignes ou des colonnes à la table, puis essayez de supprimer des lignes et des colonnes de la table. Vérifiez que vous ne pouvez pas modifier la table. Cela GroupContentControl vous empêche d’apporter des modifications.

Pour tester la table de 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 saisir votre propre entrée. DropDownListContentControl permet aux utilisateurs de sélectionner uniquement 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, tel que l’art ou une table incorporée. Cela est possible, car les RichTextContentControl utilisateurs peuvent ajouter du contenu autre que du texte.

  6. Vérifiez que vous pouvez ajouter des lignes ou des colonnes à la table et que vous pouvez supprimer des lignes et des colonnes de la table. Cela est possible, car vous n’avez pas protégé la table en la plaçant dans un GroupContentControl.

  7. Fermez le modèle.

Étapes suivantes

Vous pouvez en savoir plus sur l’utilisation des contrôles de contenu à partir de cette rubrique :