【发布时间】:2010-10-14 08:18:04
【问题描述】:
我正在开发一个 PowerPoint C# VSTO 加载项。每当更改幻灯片的标题文本时,我希望能够捕获文本更改事件。
如何附加一个自定义事件处理程序,该处理程序会在标题文本更改时触发?
【问题讨论】:
标签: vsto powerpoint
我正在开发一个 PowerPoint C# VSTO 加载项。每当更改幻灯片的标题文本时,我希望能够捕获文本更改事件。
如何附加一个自定义事件处理程序,该处理程序会在标题文本更改时触发?
【问题讨论】:
标签: vsto powerpoint
两件事: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
在 StartEvents 上按 F5 将启用挂钩。在 EndEvents 上按 F5 将其禁用。
【讨论】: