我无法访问 MS Project VSTO 加载项中的列

I can't access columns in MS Project VSTO Add-In

我想获取并设置 Microsoft.Office.Interop.MSProject.Task 对象显示在 MS Project VSTO 加载项的 Show on BoardBoard Status 列中。但似乎无法以编程方式访问这些对象成员。有没有人建议如何访问这些成员?

使用FieldNameToFieldConstant to get the field constant for the custom field and then use GetField获取该字段的显示值(总是一个字符串)。这是一个 vba 示例,可以帮助您入门;根据需要适应 C#。

Dim fldShowOnBoard As Long
fldShowOnBoard = FieldNameToFieldConstant("Show on Board")

Dim fldStatus
fldStatus = FieldNameToFieldConstant("Board Status")

If ActiveCell.Task.GetField(fldShowOnBoard) = "Yes" Then

    Dim taskStatus As String
    taskStatus = ActiveCell.Task.GetField(fldStatus)
    
    ' do something....
    
End If

在 Rachel Hettinger 的帮助下,我找到了解决问题的方法。

foreach (Microsoft.Office.Interop.MSProject.Task task in Globals.ThisAddin.Application.ActiveProject.Tasks)
{
  Microsoft.Office.Interop.MSProject.PjField fldShowOnBoard = (Microsoft.Office.Interop.MSProject.PjField)188745088;
  Microsoft.Office.Interop.MSProject.PjField fldStatus = (Microsoft.Office.Interop.MSProject.PjField)188745087;

  string taskShowOnBoard = task.GetField(fldShowOnBoard);
  string taskStatus = task.GetField(fldStatus);

}