2015-10-05 1 views
0

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

_document.Unprotect(ref _password); 

затем вытаскивает содержимое с сервера и замков с:

_document.Protect(WdProtectionType.wdAllowOnlyFormFields, ref _noReset, ref _password, ref _useIrm, ref _enforceStyleLock); 

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

_document.bookmark1.Range.Editors.Add (Microsoft.Office.Interop.Word.WdEditorType.wdEditorEveryone); 

Который не поддерживает разблокировку закладки1. Есть ли что-то еще, я могу попытаться сделать только одну разблокировку закладки, а остальные заблокированы?

ответ

0

Я помещал непрерывные разрывы раздела до и после закладки, которую я хотел сохранить редактируемыми. Тогда, то в моей функции LockDocument() Я поставил линию:

_document.Sections[4].ProtectedForForms = false; 

так вся моя функция LockDocument выглядит как:

public void LockDocument() 
    { 
     _document.Sections[4].ProtectedForForms = false; 

     // Locks the rest of the document 
     _document.Protect(WdProtectionType.wdAllowOnlyFormFields, ref _noReset, ref _password, ref _useIrm, ref _enforceStyleLock); 
    } 
0

дополняющий предыдущий ответ:

"Редакторы" подход не работает с защитой форм и полями формы. Если бы вы использовали элементы управления содержимым вместо полей формы, вы могли бы использовать Редакторы и тип защиты «Только для чтения». Также обратите внимание, что защита только для чтения позволяет гораздо больше функциональности Word, чем защита форм.

Обратите внимание: каждое поле формы также представляет собой закладку: имя, которое вы указываете в поле формы, является именем закладки. Непонятно, почему вам нужна незащищенная закладка, но в случае, если эта информация поможет ...