首先说明的是,我不懂VSTO,而是直接引用的 MS Word 的 COM组件,但是对象模型好像跟VSTO差不多,嘿嘿。
首先看一下代码:

搜索红色的文字
object oMissing = Type.Missing;
object oFalse = false;
object oTrue = true;
Application app = new ApplicationClass();
app.Visible = false;

object oFilename = "test.doc";

// 打开一个WORD文档
Document doc = app. Documents.Open(ref oFilename,
ref oMissing,
ref oFalse,
ref oFalse,
ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing);


// 此属性为True则表示搜索文档格式或按文档格式搜索
doc.Content.Find.Format = true;
doc.Content.Find.Forward = true;

// 此属性表示我要搜索红色的文字
doc.Content.Find.Font.Color = WdColor.wdColorRed;

doc.Content.Find.Execute(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oTrue, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
System.Diagnostics.Trace.WriteLine(doc.Content.Find.Text); // 将搜索到的文字显示出来
doc.Content.Find.ClearFormatting();
doc.Save();
doc.Close(ref oMissing, ref oMissing, ref oMissing);
app.Quit(ref oMissing, ref oMissing, ref oMissing);
关键的就app.ActiveDocument.Content.Find.Font属性,它可以设置要搜索的各种字体格式,然后就是app.ActiveDocument.Content.Find.Format = true ;
如果设置为True,才可以应用格式搜索。
但是奇怪的是,有时候我设置app.ActiveDocument.Content.Find.Format属性的时候总是设置不了,
执行了下列代码

Code
app.ActiveDocument.Content.Find.Format = true ;
但是app.ActiveDocument.Content.Find.Format依然为False,不知道是为什么,希望有经验的高手能为我解答,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?