Protéger des parties de documents à l’aide de contrôles de contenu
Quand vous protégez une partie d'un document, vous empêchez les utilisateurs de modifier ou de supprimer le contenu dans cette partie du document. Il existe plusieurs manières de protéger des parties d'un document Microsoft Office Word à l'aide de contrôles de contenu :
Vous pouvez protéger un contrôle de contenu.
Vous pouvez protéger une partie d'un document qui ne se trouve pas dans un contrôle de contenu.
S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Word. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.
Vous pouvez empêcher les utilisateurs de modifier ou de supprimer un contrôle de contenu en définissant les propriétés du contrôle dans un projet au niveau du document au moment de la conception ou au moment de l’exécution.
Vous pouvez également protéger les contrôles de contenu que vous ajoutez à un document au moment de l'exécution à l'aide d'un projet de complément VSTO. Pour plus d’informations, consultez Guide pratique pour ajouter des contrôles de contenu aux documents Word.
Dans le document hébergé dans le concepteur Visual Studio, sélectionnez le contrôle de contenu que vous souhaitez protéger.
Dans la fenêtre Propriétés , définissez une ou les deux propriétés suivantes :
Pour empêcher les utilisateurs de modifier le contrôle, définissez LockContents sur True.
Pour empêcher les utilisateurs de supprimer le contrôle, définissez LockContentControl sur True.
Cliquez sur OK.
Définissez la
LockContents
propriété du contrôle de contenu sur true pour empêcher les utilisateurs de modifier le contrôle et définissez laLockContentControl
propriété sur true pour empêcher les utilisateurs de supprimer le contrôle.L'exemple de code suivant illustre l'utilisation des propriétés LockContents et LockContentControl de deux objets RichTextContentControl distincts dans un projet au niveau du document. Pour exécuter ce code, ajoutez-le à la classe
ThisDocument
dans votre projet, puis appelez la méthodeAddProtectedContentControls
à partir du gestionnaire d'événementsThisDocument_Startup
.private Microsoft.Office.Tools.Word.RichTextContentControl deletableControl; private Microsoft.Office.Tools.Word.RichTextContentControl editableControl; private void AddProtectedContentControls() { this.Paragraphs[1].Range.InsertParagraphBefore(); Word.Range range1 = this.Paragraphs[1].Range; deletableControl = this.Controls.AddRichTextContentControl(range1, "deletableControl"); deletableControl.PlaceholderText = "You can delete this control, " + "but you cannot edit it"; deletableControl.LockContents = true; range1.InsertParagraphAfter(); Word.Range range2 = this.Paragraphs[2].Range; editableControl = this.Controls.AddRichTextContentControl(range2, "editableControl"); editableControl.PlaceholderText = "You can edit this control, " + "but you cannot delete it"; editableControl.LockContentControl = true; }
L’exemple de code suivant illustre l’utilisation des propriétés LockContents et LockContentControl de deux objets RichTextContentControl distincts dans un projet de complément VSTO. Pour exécuter ce code, ajoutez-le à la classe
ThisAddIn
dans votre projet, puis appelez la méthodeAddProtectedContentControls
à partir du gestionnaire d'événementsThisAddIn_Startup
.private Microsoft.Office.Tools.Word.RichTextContentControl deletableControl; private Microsoft.Office.Tools.Word.RichTextContentControl editableControl; private void AddProtectedContentControls() { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); vstoDocument.Paragraphs[1].Range.InsertParagraphBefore(); Word.Range range1 = vstoDocument.Paragraphs[1].Range; deletableControl = vstoDocument.Controls.AddRichTextContentControl(range1, "deletableControl"); deletableControl.PlaceholderText = "You can delete this control, " + "but you cannot edit it"; deletableControl.LockContents = true; range1.InsertParagraphAfter(); Word.Range range2 = vstoDocument.Paragraphs[2].Range; editableControl = vstoDocument.Controls.AddRichTextContentControl(range2, "editableControl"); editableControl.PlaceholderText = "You can edit this control, " + "but you cannot delete it."; editableControl.LockContentControl = true; }
Vous pouvez empêcher les utilisateurs de modifier une zone d'un document en la plaçant dans GroupContentControl. Cela s'avère utile dans les scénarios suivant :
Vous souhaitez protéger une zone qui ne contient pas de contrôles de contenu.
Vous souhaitez protéger une zone qui contient déjà des contrôles de contenu, mais le texte ou les autres éléments que vous souhaitez protéger ne se trouvent pas dans les contrôles de contenu.
Notes
Si vous créez un GroupContentControl qui contient des contrôles de contenu incorporés, ces contrôles ne sont pas protégés automatiquement. Pour empêcher les utilisateurs de modifier un contrôle de contenu incorporé, utilisez la propriété LockContents du contrôle.
Dans le document hébergé dans le concepteur Visual Studio, sélectionnez la zone que vous souhaitez protéger.
Dans le ruban, cliquez sur l'onglet Développeur .
Notes
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.
Dans le groupe Contrôles , cliquez sur le bouton déroulant Groupe , puis sur Groupe.
Un GroupContentControl qui contient la zone protégée est généré automatiquement dans la classe
ThisDocument
de votre projet. Une bordure qui représente le contrôle de groupe est visible au moment du design, mais il n’existe aucune bordure visible au moment de l’exécution.
Sélectionnez par programmation la zone à protéger, puis appelez la méthode AddGroupContentControl pour créer GroupContentControl.
L'exemple de code suivant pour un projet au niveau du document ajoute du texte au premier paragraphe du document, sélectionne le premier paragraphe, puis instancie GroupContentControl. Pour exécuter ce code, ajoutez-le à la classe
ThisDocument
dans votre projet, puis appelez la méthodeProtectFirstParagraph
à partir du gestionnaire d'événementsThisDocument_Startup
.private Microsoft.Office.Tools.Word.GroupContentControl groupControl1; private void ProtectFirstParagraph() { this.Paragraphs[1].Range.InsertParagraphBefore(); Word.Range range1 = this.Paragraphs[1].Range; range1.Text = "You cannot edit or change the formatting of text " + "in this sentence, because this sentence is in a GroupContentControl."; range1.Select(); groupControl1 = this.Controls.AddGroupContentControl("groupControl1"); }
L'exemple de code suivant pour un projet de complément VSTO ajoute du texte au premier paragraphe du document actif, sélectionne le premier paragraphe, puis instancie GroupContentControl. Pour exécuter ce code, ajoutez-le à la classe
ThisAddIn
dans votre projet, puis appelez la méthodeProtectFirstParagraph
à partir du gestionnaire d'événementsThisAddIn_Startup
.private Microsoft.Office.Tools.Word.GroupContentControl groupControl1; private void ProtectFirstParagraph() { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); vstoDocument.Paragraphs[1].Range.InsertParagraphBefore(); Word.Range range1 = vstoDocument.Paragraphs[1].Range; range1.Text = "You cannot edit or change the formatting of text " + "in this sentence, because this sentence is in a GroupContentControl."; range1.Select(); groupControl1 = vstoDocument.Controls.AddGroupContentControl("groupControl1"); }
- Automatiser Word à l’aide d’objets étendus
- Contrôles de contenu
- Guide pratique pour ajouter des contrôles de contenu à des documents Word
- Vue d’ensemble des éléments hôtes et des contrôles hôtes
- Limitations programmatiques des éléments hôtes et des contrôles hôtes
- Ajouter des contrôles à Bureau documents au moment de l’exécution