Добавление действия OnClick для формирования объектов в MS PowerPoint

У меня есть требование добавить действие OnClick к объекту Shape в надстройке Micro Soft Power Point для Office 2010 и более поздних версий, которая построена с использованием языка C #. Есть такие события

SlideSelectionChanged

WindowBeforeRightClick

Что не работает должным образом, событие правого клика даже не работает с объектами формы.

Есть ли способ подписаться на события такого типа, я бы не предпочел использовать MACRO, однако, если это неизбежно, я буду его использовать.


person Sadanand    schedule 22.01.2016    source источник
comment
Недавно тут был похожий вопрос. Возможно, это поможет вам. Речь шла об Excel, но многие API одинаковы для продуктов MS Office.   -  person Alex Butenko    schedule 22.01.2016


Ответы (1)


Это решение будет работать.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange += OnWindowSelectionChanged;
    }

void OnWindowSelectionChanged(PowerPoint.Selection Sel)
    {
        if (Sel.Type == PowerPoint.PpSelectionType.ppSelectionShapes)
        {
             PowerPoint.ShapeRange shapeRange = Sel.ShapeRange;
             //Do some work
        }
    }

private void ThisAddIn_ShutDown(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange -= OnWindowSelectionChanged;
    }

Хорошо иметь некоторый флаг, чтобы убедиться, что вы делаете все необходимое только для желаемых объектов формы, установив какой-либо флаг с помощью AltText, например

if (Sel.ShapeRange.AlternativeText.Contains("SomeFlag"))
   {
      //Do some thing
   }
person Sadanand    schedule 22.01.2016