2014-07-25 66 views
-1

我想在C#中编写一个加载项,用于创建一个新幻灯片,并添加单击时执行特定操作的文本框。目前我已经在打开记事本的地方得到了一个动作,但我希望它调用另一个函数。PowerPoint C# - 用监听器添加形状

当前的代码看起来是这样的:

PowerPoint.Shape sendQuestion = slide.Shapes.AddTextbox(Office.MsoTextOrientation.msoTextOrientationHorizontal, slideWidth - 200, slideHeight - 50, 200, 50); 
sendQuestion.Name = "sendQuestion"; 
sendQuestion.TextFrame.TextRange.InsertAfter("Send Question"); 
sendQuestion.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Action = PowerPoint.PpActionType.ppActionRunProgram; 
sendQuestion.ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Run = @"C:\WINDOWS\system32\notepad.exe"; 

回答

0

在ThisAddIn_Startup方法,初始化Application_WindowSelectionChange事件处理程序。

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

事件处理程序,你可以有代码 -

public void Application_WindowSelectionChange(PowerPoint.Selection sel) 
{ 
    if (sel.Type == PowerPoint.PpSelectionType.ppSelectionShapes) 
    { 
     if (sel.ShapeRange.Name == "MyTextBox") 
     { 
     //Perform certain action. 
     } 
    } 
} 

而且在ThisAddIn_Shutdown方法,你需要做这个 -

public void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    this.Application.WindowSelectionChange -= Application_WindowSelectionChange; 
} 
+0

这似乎以下不上班。我的代码在这里https://gist.github.com/hiemanshu/a93cdbc7b6d31218f707 –