Partilhar via


Como: proteger partes de documentos usando os controles de conteúdo

Quando você proteja a parte de um documento, você evita que usuários modifiquem ou excluam o conteúdo em esta parte do documento.Há várias maneiras que você pode proteger partes de um documento 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.

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 2013 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 os usuários de edição ou excluam um controle de conteúdo definindo propriedades do controle em um projeto de um documento nível em tempo de design ou em tempo de execução.

Você também pode proteger controles que você adicionar a um documento em tempo de execução usando um projeto de aplicativo.Para obter mais informações, consulte Como: adicionar controles de conteúdo para documentos do Word.

Para proteger em tempo de design um controle de conteúdo

  1. Em o documento que é hospedado no designer de Visual Studio , selecione o controle de conteúdo que você deseja proteger.

  2. Em a janela de Propriedades , defina uma ou ambas as seguintes propriedades:

    • Para evitar que os usuários editem o controle, defina LockContents a True.

    • Para evitar que os usuários excluam o controle, defina LockContentControl a True.

  3. Clique em OK.

Para proteger um controle em tempo de execução de conteúdo

  • Defina a propriedade de LockContents de controle de conteúdo a true para impedir os usuários editem o controle, e defina a propriedade de LockContentControl a true para evitar que os usuários excluam o controle.

    O exemplo de código a seguir demonstra o uso LockContents e as propriedades de LockContentControl de dois objetos diferentes de RichTextContentControl um documento em um nível projeto.Para executar esse código, adicione código para a classe de ThisDocument em seu projeto, e chame o método de AddProtectedContentControls manipulador de eventos de 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;
    }
    

    O exemplo de código a seguir demonstra o uso LockContents e as propriedades de LockContentControl de dois objetos diferentes de RichTextContentControl em um nível do projeto.Para executar esse código, adicione código para a classe de ThisAddIn em seu projeto, e chame o método de AddProtectedContentControls manipulador de eventos de 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 = _
            Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        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 = 
            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;
    }
    

protegendo uma parte de um documento que não esteja em um controle de conteúdo

Você pode impedir que os usuários modifiquem uma área de um documento colocando a área em 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 nos controles de conteúdo.

ObservaçãoObservação

Se você criar GroupContentControl que contém controles de conteúdo inseridos, os controles de conteúdo inseridos não são protegidos automaticamente.Para evitar que os usuários editem um controle de conteúdo inserido, use a propriedade de LockContents do controle.

Para proteger em tempo de design uma área de um documento

  1. Em o documento que é hospedado no designer de Visual Studio , selecione a área que você deseja proteger.

  2. Em fita, clique na guia de Desenvolvedor .

    ObservaçãoObservação

    Se a guia de Desenvolvedor não estiver visível, primeiro você deve mostrar.Para obter mais informações, consulte Como: Mostrar guia desenvolvedor na faixa de opções.

  3. Em o grupo de Controles , clique no botão suspenso de Grupo , clique em Grupo.

    GroupContentControl que contém a região protegida é gerado automaticamente na classe de ThisDocument em seu projeto.Uma borda que representa o controle de grupo não estiver visível em tempo de design, mas há nenhuma borda visível em tempo de execução.

para proteger em tempo de execução uma área de um documento

  • Selecione programaticamente a área que você deseja proteger, e então chame o método de AddGroupContentControl para criar GroupContentControl.

    O exemplo de código para um projeto de um documento nível adiciona texto ao primeiro parágrafo no documento, selecione o primeiro parágrafo, e criar uma instância em GroupContentControl.Para executar esse código, adicione código para a classe de ThisDocument em seu projeto, e chame o método de ProtectFirstParagraph manipulador de eventos de 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");
    }
    

    O exemplo de código para um projeto do nível adiciona texto ao primeiro parágrafo no documento ativo, selecione o primeiro parágrafo, e criar uma instância em GroupContentControl.Para executar esse código, adicione código para a classe de ThisAddIn em seu projeto, e chame o método de ProtectFirstParagraph manipulador de eventos de ThisAddIn_Startup .

    Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl
    
    Private Sub ProtectFirstParagraph()
    
        Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _
            Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        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 =
            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");
    }
    

Consulte também

Tarefas

Como: adicionar controles de conteúdo para documentos do Word

Conceitos

Automação do Word utilizando o Extended objetos

Controles de conteúdo

Itens de host e 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