Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何获得单词行的一部分';单词段落范围内的颜色_C#_Ms Word - Fatal编程技术网

C#如何获得单词行的一部分';单词段落范围内的颜色

C#如何获得单词行的一部分';单词段落范围内的颜色,c#,ms-word,C#,Ms Word,使用WORD.ApplicationClass()读取WORD文档 文档样式是这样的(doc) AAAA BBBB ①AAA②BBB③CCC(第三部分为红色)④DDD 我通过使用 字符串docLine=doc.parations[i].range.text.Trim() 然后运行[doc.parations[3].range.text.Trim();]得到(第3行) ①AAA②BBB③CCC(第三部分为红色)④DDD !![在此处输入图像描述][2]一行包含4个不同颜色的单词 这是我的问题,当我

使用WORD.ApplicationClass()读取WORD文档

文档样式是这样的(doc

AAAA

BBBB

①AAA②BBB③CCC(第三部分为红色)④DDD

我通过使用

字符串docLine=doc.parations[i].range.text.Trim()

然后运行[doc.parations[3].range.text.Trim();]得到(第3行

①AAA②BBB③CCC(第三部分为红色)④DDD

!![在此处输入图像描述][2]一行包含4个不同颜色的单词

这是我的问题,当我想得到线的红色第三部分时 我不知道如何得到它

因为我不知道如何在段落[3]中设置子范围。范围包含我想要的内容

我检查了MSDN,发现只有当范围为document.Range时,才可以设置范围的开始和结束

所以我想问的是,有人能告诉我如何在一个段落[i]中设置一个子范围吗。这样我就可以使用range.font.colorindex了

如果没有办法做到这一点,那么当我阅读该行的每一个prat时,如何获取颜色信息,以便在阅读红色部分时可以知道。


谢谢你的帮助。我找到了找到我想要的零件的方法。 从这本书中: 看来我没找对~

利用

Microsoft.Office.Interop.Word.Range rng= 文档段落[3].Range.Duplicate

我可以得到一个可操作的范围(你不能改变段落范围)

通过使用

rng.MoveEnd(WdUnits.wdCharacter,endPos-rng.Characters.Count); rng.MoveStart(WdUnits.wdCharacter,startPos)

我能找到我想要的


提示:range.setRange(int start,int end)总是(我认为)相对于文档的开始和结束。当你试图写一个句子或一行字时,它是无助的。

一旦你识别出了③CCC“文本部分作为范围,目标是什么(替换、重新格式化等)2)文件是作为模型使用的“静态”文件还是由其他应用程序生成的?谢谢您的评论。我找到了找到我想要的零件的方法。使用Microsoft.Office.Interop.Word.Range rng=doc.段落[3].Range.Duplicate;我可以得到一个可操作的范围(你不能改变段落范围)