2013-07-26 2 views
0

Ситуация:
Я работаю с содержанием документа MS Word. Я изменяю цвет некоторых слов в соответствии с некоторым правилом. На каждом событии KeyPress происходит раскраска слов.Как программно установить стиль текста в слове ms?

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

Вопрос: Как захватить объект Word.Range, соответствующий текущей позиции курсора, и явно задать цвет шрифта для нейтрального цвета по умолчанию? Я попытался

Word.Range r = app.Application.ActiveDocument.Range(
app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range.Start, 
app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range.End); 
r.Font.Color = WdColor.wdColorBlack; 

и

Word.Range r = app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range; 
r.Font.Color = WdColor.wdColorBlack; 

ответ

0

Чтобы установить цвет по умолчанию у вас есть два варианта:

//really default color: 
r.Font.ColorIndex = Word.WdColorIndex.wdAuto; 

//assuming default is black- set it to black 
r.Font.ColorIndex = Word.WdColorIndex.wdBlack; 

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

Word.Application.Selection.Font.ColorIndex = Word.WdColorIndex.wdAuto; 

Это не относится к активному документу но Selection приложения. После запуска следующие слова записываются по умолчанию.

+0

@Baurzhan, см. Редактирование ответа. Надейтесь на эту помощь и решите проблему. –

Смежные вопросы