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

如何附加自定义事件处理程序,只要更改标题文本,它就会触发?

有帮助吗?

解决方案

两件事:1)这是在VBA中,但应该可以轻松移植到C#和VSTO,2)<!> quot; text更改<!> quot;事情有点棘手。我可以把你带到<!>“你是否在标题栏中<!>”; - 其余的更加琐碎。它与查找原始状态与任何更改有关。可能是可行的,我还没有做到。

要在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

将类命名为<!> quot; clsPPTEvents <!> quot;。然后在任何模块中,输入以下内容:

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将其禁用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top