如何从 MS Project VSTO 加载项中侦听项目更改事件?
How do I listen for a Project Change event from an MS Project VSTO Add-in?
我的加载项有一个应用程序事件 ProjectBeforeTaskChange,可从 ThisAddIn class 获得。我需要的是一个 ProjectAfterTaskChange 事件,但它不存在。有没有办法从应用程序级加载项中侦听项目更改事件?
我的最终目标是在特定文本字段更改时设置三个数字字段。
ProjectBeforeTaskChange
是用于监视字段更改的正确事件。 "Before" 这个词指的是处理程序可以通过将 Cancel 参数设置为 True 来阻止更改。当用户更改任务字段时触发该事件。
这是一个 vb.net 示例,每当 Text1 字段更改时,它都会递增 Number1 和 Number2 字段:
Private Sub Application_ProjectBeforeTaskChange(tsk As MSProject.Task, Field As MSProject.PjField, NewVal As Object, ByRef Cancel As Boolean) Handles Application.ProjectBeforeTaskChange
If Field = MSProject.PjField.pjTaskText1 Then
Select Case NewVal
Case Is = "In-work": tsk.Number1 = 50
Case Is = "Complete": tsk.Number1 = 100
Case Else: tsk.Number1 = 0
End Select
End If
End Sub
这是 MSDN 页面。
这里 related post 展示了 c# 框架。
我的加载项有一个应用程序事件 ProjectBeforeTaskChange,可从 ThisAddIn class 获得。我需要的是一个 ProjectAfterTaskChange 事件,但它不存在。有没有办法从应用程序级加载项中侦听项目更改事件?
我的最终目标是在特定文本字段更改时设置三个数字字段。
ProjectBeforeTaskChange
是用于监视字段更改的正确事件。 "Before" 这个词指的是处理程序可以通过将 Cancel 参数设置为 True 来阻止更改。当用户更改任务字段时触发该事件。
这是一个 vb.net 示例,每当 Text1 字段更改时,它都会递增 Number1 和 Number2 字段:
Private Sub Application_ProjectBeforeTaskChange(tsk As MSProject.Task, Field As MSProject.PjField, NewVal As Object, ByRef Cancel As Boolean) Handles Application.ProjectBeforeTaskChange
If Field = MSProject.PjField.pjTaskText1 Then
Select Case NewVal
Case Is = "In-work": tsk.Number1 = 50
Case Is = "Complete": tsk.Number1 = 100
Case Else: tsk.Number1 = 0
End Select
End If
End Sub
这是 MSDN 页面。
这里 related post 展示了 c# 框架。