【问题标题】:How do I capture a PowerPoint VSTO Text Changed Event?如何捕获 PowerPoint VSTO 文本更改事件?
【发布时间】:2010-10-14 08:18:04
【问题描述】:

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

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

【问题讨论】:

    标签: vsto powerpoint


    【解决方案1】:

    两件事: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 将其禁用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多