كيف يمكنني التقاط النص VSTO باور بوينت تغيير حدث؟

StackOverflow https://stackoverflow.com/questions/295043

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا تطوير باور بوينت C # VSTO الإضافية. أريد أن أكون قادرة على التقاط الحدث النص تغير كلما تم تغيير النص عنوان شريحة.

وكيف يمكنني إرفاق معالج الحدث المخصص الذي سوف النار كلما يتم تغيير نص العنوان؟

هل كانت مفيدة؟

المحلول

وشيئين: 1) هذا هو في VBA، ولكن ينبغي أن تكون محمولة بسهولة إلى C # و VSTO، 2) "غيرت النص" الشيء هو صعبة بعض الشيء. كنت أستطيع الحصول على قدر "أنت في مربع العنوان" - والباقي هو أكثر trival. عليها أن تفعل مع العثور على حالته الأصلية مقابل أية تغييرات. قابلة للتنفيذ على الأرجح، أنا فقط لم تكن قد فعلت ذلك.

لربط تغيير التحديد في 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

واضغط على F5 على StartEvents والتي من شأنها تمكين هوك. اضغط F5 على EndEvents لتعطيله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top