Pergunta

Estou desenvolvendo um PowerPoint C # VSTO add-in. Eu quero ser capaz de capturar um evento de texto alterado sempre que o texto Título de um slide é alterado.

Como posso anexar um manipulador de eventos personalizado que dispara sempre que o texto do título é alterado?

Foi útil?

Solução

Duas coisas: 1) Este é em VBA, mas deve ser facilmente transportável para C # e VSTO, 2) O "text mudou" coisa é um pouco complicado. Eu posso levá-lo tão longe como "você está em uma caixa de Título" - o resto é mais trival. Tem a ver com encontrar estado original contra quaisquer alterações. Provavelmente factível, eu só não fiz isso.

Para ligar uma mudança de seleção em PPT VBA, você vai precisar de uma classe e um módulo. Na classe, coloque isso:

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

Nome da classe "clsPPTEvents". Então, em qualquer módulo, coloque o seguinte:

Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
    Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
    Set newPPTEvents.PPTEvent = Nothing
    Set newPPTEvents = Nothing
End Sub

Pressione F5 sobre os StartEvents e que permitirá o gancho. Pressione F5 nas EndEvents para desativá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top