Определить активный слайд в C # - PullRequest
0 голосов
/ 12 июня 2018

Я хотел бы знать, какой текущий слайд просматривает пользователь в PowerPoint (в редакции, а не в презентации).Я использовал SlideChange event с var new Index = Application.ActiveWindow.View.Slide.SlideIndex.

Проблема в том, что курсор на панели миниатюр слева находится не на слайде, а между двумя.В этом случае у меня появляется ошибка Просмотр (неизвестный участник): неверный запрос.Слайд в данный момент не отображается. , что является нормальным, потому что нет видимого вида.К сожалению, в этом случае также возникает событие SlideChange.

Я бы хотел игнорировать случаи, когда слайд не указан.Но я не могу найти какое-либо свойство, которое указывает на это, поэтому я мог бы сделать что-то вроде if(Application.ActiveWindow..... != ... ){doThis}.

Единственный (плохой) способ, который я нашел, это сделать try / catch (но это замедляет приложение, оно поднимается на каждом новом слайде с исключением).У вас есть идеи, чтобы решить мою проблему?

1 Ответ

0 голосов
/ 18 января 2019

приведенный ниже код может определить, какой слайд просматривается в данный момент

SlideShowWindows(1).View.Slide.SlideIndex

, но это будет работать только для слайд-шоу

ИЛИ

используйте код ниже ... я не уверен, но это может помочь

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