如何用程序设置msword中的文本样式

本文关键字:文本 样式 msword 何用 程序 设置 | 更新日期: 2023-09-27 18:25:02

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

如何用程序设置msword中的文本样式

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

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