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

本文关键字:PowerPoint 选择 位置 光标 清除 编程 设置 方式 | 更新日期: 2023-09-27 18:36:34

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

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

我一直无法找到一种方法来直接设置StartLength TextRange(它们是只读的),所以我求助于 range.Characters(start, length).Select() .

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

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

C# 如何以编程方式设置/清除 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
        }
    }
}