C#如何以编程方式设置/清除PowerPoint中的选择和光标位置?

时间:2013-10-23 07:50:22

标签: c# powerpoint office-interop

我目前正在制作朗读应用程序,该应用程序会突出显示正在阅读的文本。文本高亮显示在字符索引中指定。

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

我们无法找到直接设置Start Length TextRange的方法(他们只读),所以我'我们使用了range.Characters(start, length).Select()

到目前为止,这么好。问题是我不能用它来清除选择,因为我找不到范围的折叠函数。在Word中,我通过范围对象上的设置Start = End完成了它 - 它也将光标放在此位置。

我如何在PowerPoint中执行相同操作?

1 个答案:

答案 0 :(得分:0)

我太傻了 - 我只是想知道如何在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
        }
    }
}