0

情况:
我正在处理 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;
4

1 回答 1

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应用程序。运行后,接下来的单词会以默认颜色书写。

于 2013-08-04T08:24:35.150 回答