2016-12-31 2 views
1

У меня есть следующий текст в документе Word: «123». Я создал стиль, который проверяет Font Hidden. Я применяю стиль к «2» в этом тексте. Я хочу, чтобы скрыть этот текст 123 с помощью надстройки поэтому яWord VSTO Font.Hidden = 1 не работает, как задокументировано

MyRange.Font.Hidden = 1; 

Но затем 1 и 3 скрыт и 2 является нескрываемым? 2 переключается. Как скрыть это полностью? Обратите внимание, что я не хочу идти по персонажу и проверять, скрыт ли он или нет, и скрыть его, только если он не скрыт, потому что у меня большой документ.

+0

Документально правовые ценности для собственности сеттера истинны, False и wdToggle. True равно -1 в COM-взаимодействии, а не 1. –

+0

@Hans Passant - спасибо. Я пробовал это с -1, и он по-прежнему переключает текст, в котором был применен стиль. Интересно, что он переключает его только в том случае, если он скрыт, но как только он делает его видимым, нет никакого эффекта. –

+0

http://stackoverflow.com/help/mcve –

ответ

0

Слово имеет понятие «свойства переключения». Если такое свойство задано в иерархии стилей, оно просто переключает текущее состояние. Переключить свойства, например. жирным и курсивом, но также скрытым. Это означает, что поведение, которое вы наблюдаете, является стандартным поведением Word-приложения.

Решение может применить тот же стиль, который уже применяется к тексту «2» на весь текст, а не с помощью прямого форматирования:

MyRange.Style = MyRange.Document.Styles.get_Item("MyHiddenStyle");