Поделиться через


Практическое руководство. Защита частей документов с помощью элементов управления содержимым

При защите части документа пользователям запрещается изменять или удалять содержимое в этой части документа.Существует несколько способов защиты частей документа Microsoft Office Word с помощью элементов управления содержимым:

  • можно защитить элемент управления содержимым;

  • можно защитить часть документа, не входящего в элемент управления содержимым.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

Защита элемента управления содержимым

Можно запретить пользователям редактировать или удалять элемент управления содержимым путем задания свойств элемента управления в проекте уровня документа на этапе разработки или во время выполнения.

Также можно защитить элементы управления содержимым, которые добавляются в документ во время разработки с использованием проекта уровня приложения.Дополнительные сведения см. в разделе Практическое руководство. Добавление элементов управления содержимым в документы Word.

Защита элемента управления содержимым на этапе разработки

  1. В документе, который размещен в конструкторе Visual Studio, выберите элемент управления содержимым, который необходимо защитить.

  2. В окне Свойства установите одно или несколько из следующих свойств:

    • чтобы запретить пользователям изменять элемент управления, задайте для свойства LockContents значение True;

    • чтобы запретить пользователям удалять элемент управления, задайте для свойства LockContentControl значение True.

  3. Нажмите кнопку ОК.

Чтобы защитить элемент управления содержимым во время выполнения

  • Задайте для свойства LockContents элемента управления содержимым значение true, чтобы запретить пользователям редактировать элемент управления, а для свойства LockContentControl значение true, чтобы запретить пользователям удалять элемент управления.

    В следующем примере кода демонстрируется использование свойств LockContents и LockContentControl двух разных объектов RichTextContentControl в проекте уровня документа.Чтобы запустить этот код, добавьте код в класс ThisDocument в вашем проекте и вызовите метод AddProtectedContentControls из обработчика событий 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;
    }
    

    В следующем примере кода демонстрируется использование свойств LockContents и LockContentControl двух разных объектов RichTextContentControl в проекте уровня приложения.Чтобы запустить этот код, добавьте код в класс ThisAddIn в вашем проекте и вызовите метод AddProtectedContentControls из обработчика событий 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;
    }
    

Защита части документа, не входящей в элемент управления содержимым

Можно запретить пользователям изменять часть документа, поместив эту часть в элемент управления GroupContentControl.Это рекомендуется делать в следующих случаях.

  • необходимо защитить часть документа, не содержащую элементов управления содержимым;

  • необходимо защитить часть документа, уже содержащую элементы управления содержимым, однако текст или иные элементы, которые необходимо защитить, не включены в элементы управления содержимым.

ПримечаниеПримечание

При создании GroupContentControl, который содержит внедренные элементы управления содержимым, последние не защищаются автоматически.Чтобы запретить пользователям изменять внедренный элемент управления содержимым, следует использовать свойство LockContents элемента управления.

Защита области документа на этапе разработки

  1. В документе, который размещен в конструкторе Visual Studio, выберите область, которую необходимо защитить.

  2. В ленте щелкните вкладку Разработчик.

    ПримечаниеПримечание

    Если вкладка Разработчик не отображается в ленте, то ее следует сначала отобразить.Дополнительные сведения см. в разделе Практическое руководство. Отображение вкладки разработчика на ленте.

  3. В группе Элементы управления щелкните разворачивающуюся кнопку Группа и выберите пункт Группа.

    При этом в классе ThisDocument проекта будет автоматически создан элемент управления GroupContentControl, содержащий защищаемую область.На этапе разработки отображается граница, представляющая элемент управления группы, которая не видна во время выполнения.

Чтобы защитить область документа во время выполнения

  • Выберите область, которую необходимо защитить, программным способом, после чего вызовите метод AddGroupContentControl для создания элемента управления GroupContentControl.

    В приведенном ниже примере кода для проекта уровня документа в первый абзац документа добавляется текст, после чего выделяется первый абзац и создается экземпляр GroupContentControl.Чтобы запустить этот код, добавьте код в класс ThisDocument в вашем проекте и вызовите метод ProtectFirstParagraph из обработчика событий 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");
    }
    

    В приведенном ниже примере кода для проекта уровня приложения в первый абзац активного документа добавляется текст, после чего выделяется первый абзац и создается экземпляр GroupContentControl.Чтобы запустить этот код, добавьте код в класс ThisAddIn в проекте и вызовите метод ProtectFirstParagraph из обработчика событий 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");
    }
    

См. также

Задачи

Практическое руководство. Добавление элементов управления содержимым в документы Word

Основные понятия

Автоматизация Word с помощью расширенных объектов

Элементы управления содержимым

Общие сведения о ведущих элементах и элементах управления ведущего приложения

Программные ограничения ведущих элементов и элементов управления ведущего приложения

Добавление элементов управления в документы Office во время выполнения