Proteger partes de documentos usando controles de conteúdo
Ao proteger parte de um documento, você impede que os usuários alterem ou excluam o conteúdo dessa parte do documento. Há várias maneiras de proteger partes de um documento do Microsoft Office Word usando controles de conteúdo:
Você pode proteger um controle de conteúdo.
Você pode proteger uma parte de um documento que não esteja em um controle de conteúdo.
Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.
Proteger um controle de conteúdo
Você pode impedir que os usuários editem ou excluam um controle de conteúdo definindo propriedades do controle em um projeto de nível de documento em tempo de design ou em tempo de execução.
Você também pode proteger controles de conteúdo que você adiciona a um documento em tempo de execução usando um projeto de suplemento VSTO. Para obter mais informações, consulte Como: Adicionar controles de conteúdo a documentos do Word.
Para proteger um controle de conteúdo em tempo de design
No documento hospedado no designer do Visual Studio, selecione o controle de conteúdo que você deseja proteger.
Na janela Propriedades, defina uma ou ambas as seguintes propriedades:
Para impedir que os usuários editem o controle, defina LockContents como True.
Para impedir que os usuários excluam o controle, defina LockContentControl como True.
Clique em OK.
Para proteger um controle de conteúdo em tempo de execução
Defina a
LockContents
propriedade do controle de conteúdo como true para impedir que os usuários editem o controle e defina aLockContentControl
propriedade como true para impedir que os usuários excluam o controle.O exemplo de código a seguir demonstra o LockContents uso de e LockContentControl propriedades de dois objetos diferentes RichTextContentControl em um projeto de nível de documento. Para executar esse código, adicione o código à
ThisDocument
classe em seu projeto e chame oAddProtectedContentControls
ThisDocument_Startup
método do manipulador de eventos.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; }
O exemplo de código a seguir demonstra o LockContents uso das propriedades e LockContentControl de dois objetos diferentes RichTextContentControl em um projeto de suplemento VSTO. Para executar esse código, adicione o código à
ThisAddIn
classe em seu projeto e chame oAddProtectedContentControls
ThisAddIn_Startup
método do manipulador de eventos.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; }
Proteger uma parte de um documento que não está em um controle de conteúdo
Você pode impedir que os usuários alterem uma área de um documento colocando a área em um GroupContentControlarquivo . Isso é útil nos seguintes cenários:
Você deseja proteger uma área que não contém controles de conteúdo.
Você deseja proteger uma área que já contém controles de conteúdo, mas o texto ou outros itens que você deseja proteger não estão nos controles de conteúdo.
Observação
Se você criar um que contenha controles de conteúdo incorporados, os controles de GroupContentControl conteúdo incorporados não serão protegidos automaticamente. Para impedir que os usuários editem um controle de conteúdo incorporado, use a propriedade LockContents do controle.
Para proteger uma área de um documento em tempo de design
No documento hospedado no designer do Visual Studio, selecione a área que você deseja proteger.
Na Faixa de Opções, clique na guia Desenvolvedor .
Observação
Se a guia Desenvolvedor não estiver visível, você deverá mostrá-la primeiro. Para obter mais informações, consulte Como mostrar a guia do desenvolvedor na faixa de opções.
No grupo Controles, clique no botão suspenso Grupo e clique em Grupo.
Um GroupContentControl que contém a região protegida é gerado automaticamente na
ThisDocument
classe em seu projeto. Uma borda que representa o controle de grupo é visível em tempo de design, mas não há borda visível em tempo de execução.
Para proteger uma área de um documento em tempo de execução
Selecione programaticamente a área que você deseja proteger e, em seguida, chame o AddGroupContentControl método para criar um GroupContentControlarquivo .
O exemplo de código a seguir para um projeto de nível de documento adiciona texto ao primeiro parágrafo do documento, seleciona o primeiro parágrafo e instancia um GroupContentControlarquivo . Para executar esse código, adicione o código à
ThisDocument
classe em seu projeto e chame oProtectFirstParagraph
ThisDocument_Startup
método do manipulador de eventos.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"); }
O exemplo de código a seguir para um projeto de suplemento VSTO adiciona texto ao primeiro parágrafo do documento ativo, seleciona o primeiro parágrafo e instancia um GroupContentControlarquivo . Para executar esse código, adicione o código à
ThisAddIn
classe em seu projeto e chame oProtectFirstParagraph
ThisAddIn_Startup
método do manipulador de eventos.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"); }
Conteúdo relacionado
- Automatizar o Word usando objetos estendidos
- Controles de conteúdo
- Como: Adicionar controles de conteúdo a documentos do Word
- Visão geral de itens de host e controles de host
- Limitações programáticas de itens de host e controles de host
- Adicionar controles a documentos do Office em tempo de execução