2

我正在开发一个 PowerPoint C# VSTO 加载项。每当更改幻灯片的标题文本时,我希望能够捕获文本更改事件。

如何附加一个自定义事件处理程序,该处理程序会在标题文本更改时触发?

4

1 回答 1

3

两件事: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 以禁用它。

于 2010-02-03T21:28:35.510 回答