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

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

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

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

要设置默认颜色,您有两个选择:

 //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 。 运行后,下一个单词将以默认颜色书写。