Comment : protéger des parties de documents à l'aide de contrôles de contenu
Mise à jour : Juillet 2008
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Lorsque 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 pour protéger des parties d'un document Microsoft Office Word 2007 à 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 n'est pas dans un contrôle de contenu.
Protection d'un contrôle de contenu
Vous pouvez empêcher les utilisateurs de modifier ou de supprimer un contrôle de contenu en définissant des propriétés du contrôle dans un projet au niveau du document au moment du design ou de l'exécution.
À compter de Visual Studio 2008 Service Pack 1 (SP1), vous pouvez aussi protéger des contrôles de contenu que vous ajoutez à un document au moment de l'exécution en utilisant un projet au niveau de l'application. Pour plus d'informations, consultez Comment : ajouter des contrôles de contenu à des documents Word.
Pour protéger un contrôle de contenu au moment du design
Dans le document hébergé dans le concepteur Visual Studio, sélectionnez le contrôle de contenu à protéger.
Dans la fenêtre Propriétés, définissez l'une des propriétés suivantes ou les deux :
Pour empêcher les utilisateurs de modifier le contrôle, affectez à LockContents la valeur True.
Pour empêcher les utilisateurs de supprimer le contrôle, affectez à LockContentControl la valeur True.
Cliquez sur OK.
Pour protéger un contrôle de contenu au moment de l'exécution dans un projet au niveau du document
Affectez à la propriété LockContents du contrôle de contenu la valeur true pour empêcher les utilisateurs de modifier le contrôle, puis affectez à la propriété LockContentControl la valeur true pour empêcher les utilisateurs de supprimer le contrôle.
L'exemple de code suivant montre l'utilisation des propriétés LockContents et LockContentControl de deux objets RichTextContentControl différents dans un projet au niveau du document. Pour exécuter ce code, ajoutez-le à la classe ThisDocument de votre projet et appelez la méthode AddProtectedContentControls à partir du gestionnaire d'événements ThisDocument_Startup.
Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddProtectedContentControls() Me.Paragraphs(1).Range.InsertParagraphBefore() Dim range1 As Word.Range = Me.Paragraphs(1).Range deletableControl = Me.Controls.AddRichTextContentControl(range1, _ "deletableControl") deletableControl.PlaceholderText = "You can delete this control, " & _ "but you cannot edit it" deletableControl.LockContents = True range1.InsertParagraphAfter() Dim range2 As Word.Range = Me.Paragraphs(2).Range editableControl = Me.Controls.AddRichTextContentControl(range2, _ "editableControl") editableControl.PlaceholderText = "You can edit this control, " & _ "but you cannot delete it" editableControl.LockContentControl = True End Sub
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; }
Pour protéger un contrôle de contenu au moment de l'exécution dans un projet d'application
Affectez à la propriété LockContents du contrôle de contenu la valeur true pour empêcher les utilisateurs de modifier le contrôle, puis affectez à la propriété LockContentControl la valeur true pour empêcher les utilisateurs de supprimer le contrôle.
L'exemple de code suivant montre l'utilisation des propriétés LockContents et LockContentControl de deux objets RichTextContentControl différents dans un projet d'application. Pour exécuter ce code, ajoutez-le à la classe ThisAddIn du projet et appelez la méthode AddProtectedContentControls à partir du gestionnaire d'événements ThisAddIn_Startup.
Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddProtectedContentControls() Dim vstoDocument As Microsoft.Office.Tools.Word.Document = _ Me.Application.ActiveDocument.GetVstoObject() vstoDocument.Paragraphs(1).Range.InsertParagraphBefore() Dim range1 As Word.Range = 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() Dim range2 As Word.Range = 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 End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl deletableControl; private Microsoft.Office.Tools.Word.RichTextContentControl editableControl; private void AddProtectedContentControls() { Microsoft.Office.Tools.Word.Document vstoDocument = this.Application.ActiveDocument.GetVstoObject(); 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; }
Protection d'une partie d'un document qui n'est pas dans un contrôle de contenu
Vous pouvez empêcher les utilisateurs de modifier une zone d'un document en la plaçant dans un GroupContentControl. Cela s'avère utile dans les scénarios suivants :
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 d'autres éléments que vous souhaitez protéger ne sont pas dans les contrôles de contenu.
Remarque : |
---|
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. |
Pour protéger une zone d'un document au moment du design
Dans le document hébergé dans le concepteur Visual Studio, sélectionnez la zone à protéger.
Dans le ruban, cliquez sur l'onglet Développeur.
Remarque : Si l'onglet Développeur n'est pas visible, vous devez d'abord l'afficher. Pour plus d'informations, consultez Comment : afficher l'onglet Développeur sur le ruban.
Dans le groupe Contrôles, cliquez sur le bouton déroulant Groupe, puis cliquez sur Groupe.
Un GroupContentControl qui contient la région protégée est généré automatiquement dans la classe ThisDocument dans votre projet. Une bordure représentant le contrôle de groupe est visible au moment du design, mais il n'y a aucune bordure visible au moment de l'exécution.
Pour protéger une zone d'un document au moment de l'exécution dans un projet au niveau du document
Sélectionnez par programme la zone à protéger, puis appelez la méthode AddGroupContentControl pour créer un GroupContentControl.
L'exemple de code suivant ajoute du texte au premier paragraphe dans le document, sélectionne le premier paragraphe, puis instancie un GroupContentControl. Pour exécuter ce code, ajoutez-le à la classe ThisDocument de votre projet et appelez la méthode ProtectFirstParagraph à partir du gestionnaire d'événements ThisDocument_Startup.
Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl Private Sub ProtectFirstParagraph() Me.Paragraphs(1).Range.InsertParagraphBefore() Dim range1 As Word.Range = Me.Paragraphs(1).Range range1.Text = "You cannot edit or change the formatting of text " & _ "in this paragraph, because this paragraph is in a GroupContentControl." range1.Select() groupControl1 = Me.Controls.AddGroupContentControl("groupControl1") End Sub
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"); }
Pour protéger une zone d'un document au moment de l'exécution dans un projet d'application
Sélectionnez par programme la zone à protéger, puis appelez la méthode AddGroupContentControl pour créer un GroupContentControl.
L'exemple de code suivant ajoute du texte au premier paragraphe dans le document actif, sélectionne le premier paragraphe, puis instancie un GroupContentControl. Pour exécuter ce code, ajoutez-le à la classe ThisAddIn du projet et appelez la méthode ProtectFirstParagraph à partir du gestionnaire d'événements ThisAddIn_Startup.
Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl Private Sub ProtectFirstParagraph() Dim vstoDocument As Microsoft.Office.Tools.Word.Document = _ Me.Application.ActiveDocument.GetVstoObject() vstoDocument.Paragraphs(1).Range.InsertParagraphBefore() Dim range1 As Word.Range = vstoDocument.Paragraphs(1).Range range1.Text = "You cannot edit or change the formatting of text " & _ "in this paragraph, because this paragraph is in a GroupContentControl." range1.Select() groupControl1 = vstoDocument.Controls.AddGroupContentControl("groupControl1") End Sub
private Microsoft.Office.Tools.Word.GroupContentControl groupControl1; private void ProtectFirstParagraph() { Microsoft.Office.Tools.Word.Document vstoDocument = this.Application.ActiveDocument.GetVstoObject(); 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"); }
Voir aussi
Tâches
Comment : ajouter des contrôles de contenu à des documents Word
Concepts
Vue d'ensemble des éléments hôtes et des contrôles hôtes
Limitations de programmation des éléments hôtes et des contrôles hôtes
Ajout de contrôles à des documents Office au moment de l'exécution
Méthodes d'assistance pour les contrôles hôtes
Autres ressources
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Procédures ajoutées pour les compléments d'application. |
Modifications de fonctionnalités dans le SP1. |