C# 识别C中的活动幻灯片#
我想知道用户在PowerPoint(版本而非演示文稿)中查看的当前幻灯片是哪一张。 我在C# 识别C中的活动幻灯片#,c#,.net,powerpoint,office-interop,C#,.net,Powerpoint,Office Interop,我想知道用户在PowerPoint(版本而非演示文稿)中查看的当前幻灯片是哪一张。 我在var new Index=Application.ActiveWindow.View.Slide.SlideIndex中使用了一个SlideChange事件 问题在于左侧缩略图面板上的光标不在幻灯片上,而是在两张幻灯片之间。在这种情况下,我有一个错误视图(未知成员):请求无效。当前没有幻灯片。这是正常的,因为没有指向的视图。 不幸的是,在这种情况下也会引发SlideChange事件 我想忽略没有幻灯片的情况
var new Index=Application.ActiveWindow.View.Slide.SlideIndex
中使用了一个SlideChange事件
问题在于左侧缩略图面板上的光标不在幻灯片上,而是在两张幻灯片之间。在这种情况下,我有一个错误视图(未知成员):请求无效。当前没有幻灯片。这是正常的,因为没有指向的视图。
不幸的是,在这种情况下也会引发SlideChange事件
我想忽略没有幻灯片的情况。但是我找不到任何表示它的属性,所以我可以执行类似于if(Application.ActiveWindow…!=…){doThis}
的操作
我发现的唯一(不好的)方法是制作一个try/catch(但它会减慢应用程序的速度,在每一张新幻灯片上都会出现一个例外)。你有什么办法解决我的问题吗?下面的代码可以找到当前正在观看的幻灯片
SlideShowWindows(1).视图.幻灯片.幻灯片索引
但这只适用于幻灯片放映
或
使用下面的代码..我不确定,但它可能会有所帮助
if (Globals.ThisAddIn.Application.Active == MsoTriState.msoTrue &&
Globals.ThisAddIn.Application.ActiveWindow.Panes[2].Active == MsoTriState.msoTrue)
{
bla bla
}
可以使用以下代码获取活动幻灯片对象:
var slide = Application.ActiveWindow.View.Slide