Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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#如何通过编程设置/清除PowerPoint中的选项和光标位置?_C#_Powerpoint_Office Interop - Fatal编程技术网

C#如何通过编程设置/清除PowerPoint中的选项和光标位置?

C#如何通过编程设置/清除PowerPoint中的选项和光标位置?,c#,powerpoint,office-interop,C#,Powerpoint,Office Interop,我目前正在开发一个朗读应用程序,在阅读文本时突出显示文本。文字高光在字符索引中指定 TextRange range=Application.ActiveWindow.ShapeRange.TextFrame.TextRange为我提供了一个包含当前形状中所有字符的范围 我无法找到直接设置TextRange的Start和Length的方法(它们是只读的),所以我求助于使用range.Characters(Start,Length).Select() 到目前为止,一切顺利。问题是我不能用它来清除选择

我目前正在开发一个朗读应用程序,在阅读文本时突出显示文本。文字高光在字符索引中指定

TextRange range=Application.ActiveWindow.ShapeRange.TextFrame.TextRange
为我提供了一个包含当前形状中所有字符的范围

我无法找到直接设置
TextRange
Start
Length
的方法(它们是只读的),所以我求助于使用
range.Characters(Start,Length).Select()

到目前为止,一切顺利。问题是我不能用它来清除选择,因为我找不到范围的折叠函数。在Word中,我通过在range对象上设置
Start=End
,也将光标放在这个位置


我怎么能在PowerPoint中做同样的事情呢?

我太笨了-我5分钟前才知道如何使用
range.Characters()。就在我发布问题时,我突然想到了答案:

range.Characters(start, 0).Select();
通过在所有形状中循环,可以扩展此方法以处理整个PowerPoint文档:

foreach (Slide slide in app.ActivePresentation.Slides){
    foreach (Shape shape in slide.Shapes)
    {
        if (Shape.HasTextFrame == MsoTriState.msoTrue)
        {
            // Do stuff with this part of the text
        }
    }
}