我正在开发一个 PowerPoint C# VSTO 加载项。每当更改幻灯片的标题文本时,我希望能够捕获文本更改事件。
如何附加一个自定义事件处理程序,该处理程序会在标题文本更改时触发?
我正在开发一个 PowerPoint C# VSTO 加载项。每当更改幻灯片的标题文本时,我希望能够捕获文本更改事件。
如何附加一个自定义事件处理程序,该处理程序会在标题文本更改时触发?
两件事:1)这是在 VBA 中,但应该很容易移植到 C# 和 VSTO,2)“文本更改”的事情有点棘手。我可以告诉你“你在标题框中吗”——剩下的就更琐碎了。它与查找原始状态与任何更改有关。应该可以吧,我还没做。
要在 PPT VBA 中挂钩选择更改,您需要一个类和一个模块。在课堂上,把这个:
Public WithEvents PPTEvent As Application
Private Sub PPTEvent_WindowSelectionChange(ByVal Sel As Selection)
With Sel
If .Type = ppSelectionText Then
Dim sh As Shape: Set sh = .ShapeRange(1)
If sh.Type = msoPlaceholder Then
originalText = sh.TextFrame.Text
Dim placeHolderType As Integer
placeHolderType = sh.PlaceholderFormat.Type
If placeHolderType = ppPlaceholderTitle Then
MsgBox "this is a title placeholder"
End If
End If
End If
End With
End Sub
将类命名为“clsPPTEvents”。然后在任何模块中,输入以下内容:
Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
Set newPPTEvents.PPTEvent = Nothing
Set newPPTEvents = Nothing
End Sub
按下F5StartEvents,这将启用钩子。在 EndEvents 上按 F5 以禁用它。