2016-01-22 40 views
1

我有要求将OnClick操作添加到使用C#语言构建的Office 2010及更高版本的Micro Soft Power Point Addin中的Shape对象。有类似事件将OnClick操作添加到MS PowerPoint中的形状对象

SlideSelectionChanged 

WindowBeforeRightClick 

哪些不按需要工作,右键单击事件甚至不能在形状对象上工作。

有没有办法订阅这种类型的事件,我不喜欢使用MACRO,但如果这是不可避免的,我会使用它。

+0

最近这里曾是类似的问题,有一些标志设置一些标志,以确保你正在做要紧的唯一所需形状对象。 [也许它可以帮助你](http://stackoverflow.com/a/34907714/1295010)。这是关于excel的,但许多API与MS Office产品相同。 –

回答

0

此解决方案将工作。

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 
    } 
相关问题