Como: Proteger partes de documentos usando os controles de conteúdo
Quando você protege a parte de um documento, você impedir que os usuários alterem ou excluindo o conteúdo nessa parte do documento. Há várias maneiras de proteger partes de um documento do Word de Microsoft Office usando os 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.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Protegendo um controle de conteúdo
Você pode impedir que os usuários editar ou excluir 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 os controles de conteúdo que você adicionar a um documento em tempo de execução usando um projeto de nível de aplicativo. For more information, see Como: Adicionar controles de conteúdo para documentos do Word.
Para proteger um controle de conteúdo em tempo de design
No documento que está hospedado na Visual Studio designer, selecione o controle de conteúdo que você deseja proteger.
No Propriedades janela, defina uma ou ambas as seguintes propriedades:
Para impedir que os usuários o controle de edição, defina LockContents para True.
Para impedir que os usuários a exclusão do controle, defina LockContentControl para True.
Click OK.
Para proteger um controle de conteúdo em tempo de execução
Definir o LockContents a propriedade do controle de conteúdo para true para impedir que os usuários o controle de edição e definir o LockContentControl propriedade para true to prevent users from a exclusão do controle.
O exemplo de código a seguir demonstra o uso de LockContents e LockContentControl Propriedades de dois diferentes RichTextContentControl objetos em um projeto de nível de documento. Para executar esse código, adicione o código para o ThisDocument classe em seu projeto e a chamada a AddProtectedContentControls método a partir do ThisDocument_Startup manipulador de eventos.
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; }
O exemplo de código a seguir demonstra o uso de LockContents e LockContentControl Propriedades de dois diferentes RichTextContentControl objetos em um projeto de nível de aplicativo. Para executar esse código, adicione o código para o ThisAddIn classe em seu projeto e a chamada a AddProtectedContentControls método a partir do ThisAddIn_Startup manipulador de eventos.
Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddProtectedContentControls() ' Use the following line of code in projects that target the .NET Framework 4. Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _ Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' 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() { // Use the following line of code in projects that target the .NET Framework 4. Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // 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; }
Protegendo uma parte de um documento que não esteja em um controle de conteúdo
Você pode impedir que usuários alterem uma área de um documento, colocando a área em um GroupContentControl. Isso é útil nas seguintes situações:
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 em controles de conteúdo.
Observação |
---|
Se você criar um GroupContentControl que contém os controles de conteúdo incorporados, os controles de conteúdo incorporados não serão automaticamente protegidos. Para impedir que usuários editem um controle de conteúdo incorporado, use o LockContents a propriedade do controle. |
Para proteger uma área de um documento em tempo de design
No documento que está hospedado na Visual Studio designer, selecione a área que você deseja proteger.
Na faixa de opções, clique no Developer guia.
Observação Se o Developer guia não estiver visível, você deve primeiro mostrá-lo. For more information, see Como: Mostrar guia desenvolvedor na faixa de opções.
No controles de grupo, clique no grupo botão suspenso e clique grupo.
A GroupContentControl que contém o protegido região é gerada automaticamente na ThisDocument classe no projeto. Uma borda que representa o controle de grupo é visível em tempo de design, mas não há nenhuma borda visível em tempo de execução.
Para proteger uma área de um documento em tempo de execução
Programaticamente, selecione a área que você deseja proteger e, em seguida, chame o AddGroupContentControl método para criar um GroupContentControl.
O exemplo de código a seguir para um projeto de nível de documento adiciona texto ao primeiro parágrafo no documento, seleciona o primeiro parágrafo e, em seguida, instancia um GroupContentControl. Para executar esse código, adicione o código para o ThisDocument classe em seu projeto e a chamada a ProtectFirstParagraph método a partir do ThisDocument_Startup manipulador de eventos.
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"); }
O exemplo de código a seguir para um projeto de nível de aplicativo adiciona texto ao primeiro parágrafo do documento ativo, seleciona o primeiro parágrafo e, em seguida, instancia um GroupContentControl. Para executar esse código, adicione o código para o ThisAddIn classe em seu projeto e a chamada a ProtectFirstParagraph método a partir do ThisAddIn_Startup manipulador de eventos.
Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl Private Sub ProtectFirstParagraph() ' Use the following line of code in projects that target the .NET Framework 4. Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _ Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' 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() { // Use the following line of code in projects that target the .NET Framework 4. Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // 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"); }
Consulte também
Tarefas
Como: Adicionar controles de conteúdo para documentos do Word
Conceitos
Automatizar o Word usando o Extended objetos
Itens de host e a visão geral sobre controles de Host
Limitações de programação de itens de Host e controles de Host
Adicionar controles a documentos do Office em tempo de execução