我做了一个自定义活动。我打算做的是在单击关闭按钮时使自定义任务窗格不可见,但它不会运行我的make Makefile
方法。我显然遗漏了一些简单的东西,但我不确定我错过了什么。
在ThisAddIn类中首先运行的代码:
MainTaskPaneControl_HideTaskPane
PowerPointDocSetUp类中的取消按钮:
Dim gen = New PowerPointDocSetUpMain()
AddHandler gen.HideTaskPane, AddressOf MainTaskPaneControl_HideTaskPane
PowerPointDocSetUpMain类:
Private Sub ButtonCancel_Click(sender As Object, e As EventArgs) Handles ButtonCancel.Click
Dim main As PowerPointDocSetUpMain = New PowerPointDocSetUpMain
main.CloseMain()
End Sub
Public Event HideTaskPane()
Public Function CloseMain()
RaiseEvent HideTaskPane()
End Function
ThisAddIn类中的HideTaskPane方法:
Friend Sub MainTaskPaneControl_HideTaskPane()
'Hide the requested task pane.
Globals.ThisAddIn.HideTaskPane()
End Sub
答案 0 :(得分:2)
您有两个代码片段可以创建PowerPointDocSetUpMain
个对象,因此您创建了两个不同的对象。其中一个是你注册一个事件处理程序,另一个是你打CloseMain
。您调用方法的那个没有事件处理程序,而带有事件处理程序的那个没有调用它的方法。很难知道确切的解决方案应该是什么,因为我们并不真正知道这些代码片段是如何相互关联的,但前两个代码片段不能同时创建新对象。如果第一个创建一个对象并注册一个事件处理程序,那么第二个必须在同一个对象上调用CloseMain
。
答案 1 :(得分:1)
您将处理程序添加到对象gen
:
AddHandler gen.HideTaskPane, AddressOf MainTaskPaneControl_HideTaskPane
但是在Button_Click
- 方法中,创建了一个新对象main
,而没有向其添加处理程序。因此gen
的处理程序永远不会被调用,main
的处理程序不存在。