如何在ms字中以编程方式设置文本样式?

时间:2013-07-26 18:07:07

标签: c# ms-word add-in

情况:
我正在处理MS Word文档的内容。我根据某些规则改变了一些单词的颜色。每个KeyPress事件都会出现单词着色。

问题:
当用户输入满足我的规则类型单词的单词变为彩色并感染将来的文本,它将在彩色文本后立即输入。但未来文字可能无法满足规则。从一方面来看,只是键入的文字不应该是彩色的,但另一方面它已经着色,因为它很可能在彩色文本之后,被感染的风格。< / p>

问题:如何抓取与当前光标位置对应的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;

1 个答案:

答案 0 :(得分: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。运行后,下一个单词将以默认颜色写入。