识别C#中的活动幻灯片

时间:2018-06-12 11:58:33

标签: c# .net powerpoint office-interop

我想知道用户在PowerPoint中查看的当前幻灯片(在版本中不是演示文稿)。 我使用了SlideChange event var new Index = Application.ActiveWindow.View.Slide.SlideIndex

问题是当左侧缩略图面板上的光标不在幻灯片上但在两者之间时。在这种情况下,我有一个错误查看(未知成员):无效的请求。目前没有幻灯片。这是正常的,因为没有指向视图。 不幸的是,在这种情况下也会引发SlideChange事件。

我想忽略没有滑动指向的情况。但我找不到任何表明它的属性,所以我可以做if(Application.ActiveWindow..... != ... ){doThis}之类的事情。

我找到的唯一(坏)方法是创建一个 try / catch (但它会减慢应用程序的速度,但会在每个新幻灯片中引发异常)。你有什么想法来解决我的问题吗?

2 个答案:

答案 0 :(得分:0)

下面的代码能够找到当前正在查看的幻灯片

SlideShowWindows(1).View.Slide.SlideIndex

但这仅适用于幻灯片放映

OR

使用下面的代码..我不确定,但这可能会帮助

if (Globals.ThisAddIn.Application.Active == MsoTriState.msoTrue &&
            Globals.ThisAddIn.Application.ActiveWindow.Panes[2].Active == MsoTriState.msoTrue)
        {
           bla bla
        }

答案 1 :(得分:0)

您可以使用以下代码获取活动幻灯片对象:

var slide = Application.ActiveWindow.View.Slide