Защита частей документов с помощью элементов управления содержимым
При защите части документа вы запрещаете пользователям изменять или удалять содержимое в ней. Для защиты частей документа Microsoft Office с помощью элементов управления содержимым можно использовать несколько способов:
можно защитить элемент управления содержимым;
можно защитить часть документа, расположенного вне элемента управления содержимым.
Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO для Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.
Защита элемента управления содержимым
Вы можете запретить пользователям изменять или удалять элемент управления содержимым, задав свойства элемента управления в проекте уровня документа во время разработки или во время выполнения.
Также можно защитить элементы управления содержимым, которые вы добавляете в документ во время выполнения с помощью проекта надстройки VSTO. Дополнительные сведения см. в статье "Практическое руководство. Добавление элементов управления содержимым в документы Word".
Защита элемента управления содержимым во время разработки
В документе, размещенном в конструкторе Visual Studio, выберите элемент управления содержимым, который требуется защитить.
В окне "Свойства" задайте одно или оба из следующих свойств:
Чтобы запретить пользователям изменять элемент управления, задайте для lockContents значение True.
Чтобы запретить пользователям удалять элемент управления, задайте для lockContentControl значение True.
Щелкните OK.
Защита элемента управления содержимым во время выполнения
LockContents
Задайте для свойства элемента управления содержимым значение true, чтобы запретить пользователям изменять элемент управления и задатьLockContentControl
для свойства значение true, чтобы запретить пользователям удалять элемент управления.В следующем примере кода показано использование свойств LockContents и LockContentControl двух разных объектов RichTextContentControl в проекте на уровне документа. Для выполнения этого кода добавьте код в класс
ThisDocument
в проекте и вызовите методAddProtectedContentControls
обработчика событийThisDocument_Startup
.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 в проекте надстройки VSTO. Для выполнения этого кода добавьте код в класс
ThisAddIn
в проекте и вызовите методAddProtectedContentControls
обработчика событийThisAddIn_Startup
.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 элемента управления.
Защита области документа во время разработки
В документе, размещенном в конструкторе Visual Studio, выберите область, которую требуется защитить.
На ленте перейдите на вкладку Разработчик .
Примечание.
Если вкладка Разработчик не отображается, сделайте ее видимой. Дополнительные сведения см. в разделе "Практическое руководство. Отображение вкладки разработчика на ленте".
В группе "Элементы управления" нажмите кнопку раскрывающегося списка "Группа" и нажмите кнопку "Группа".
Объект GroupContentControl, содержащий защищенную область, создается автоматически в классе
ThisDocument
в проекте. Граница, представляющая элемент управления группой, отображается во время разработки, но во время выполнения не отображается видимая граница.
Защита области документа во время выполнения
Программными средствами выберите область, которую требуется защитить, а затем вызовите метод AddGroupContentControl для создания GroupContentControl.
Следующий пример кода для проекта уровня документа добавляет текст в первый абзац документа, выделяет первый абзац и создает экземпляр GroupContentControl. Для выполнения этого кода добавьте код в класс
ThisDocument
в проекте и вызовите методProtectFirstParagraph
обработчика событийThisDocument_Startup
.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"); }
Следующий пример кода для проекта надстройки VSTO добавляет текст в первый абзац активного документа, выделяет первый абзац и создает экземпляр GroupContentControl. Для выполнения этого кода добавьте код в класс
ThisAddIn
в проекте и вызовите методProtectFirstParagraph
обработчика событийThisAddIn_Startup
.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 во время выполнения