MS Project的VSTO加载项:一次显示所有任务

时间:2016-10-04 07:36:44

标签: c# vsto ms-project

下面的代码(在VSTO加载项的标准ThisAddIn类中)检索有关要添加到MS Project(2013)的任务的信息,然后将实际任务添加到项目Tasks集合中。问题是项目允许逐个添加任务并在每次将任务添加到Tasks集合时重新绘制(刷新)项目视图。看起来很烦人。到目前为止,我发现并使用 Application.ScreenUpdating 属性来隐藏闪烁。

准备一组任务并将它们一起连接到活动项目会很不错。任何更有经验的人都可以指出一种方法来实现这一目标吗?如果使用当前的MS Project Add-In API,它是否可行?

非常感谢。

....
using MSProject = Microsoft.Office.Interop.MSProject;
....

public partial class ThisAddIn
{
    ....

    private void ShowTasks()
    {
        MSProject.Project project = this.Application.ActiveProject;
        // TaskInfo is a custom DTO type
        IEnumerable<TaskInfo> dataSource = GetDataSourceSomehow();

        this.Application.ScreenUpdating = false;
        this.Application.Calculation = MSProject.PjCalculation.pjManual;

        foreach(TaskInfo info in dataSource)
        {
            MSProject.Task task = project.Tasks.Add(info.TaskName);
        }

        this.Application.ScreenUpdating = true;
    }
}

1 个答案:

答案 0 :(得分:0)

我花了一些时间调查,但没有成功。 最后,我收到了一个不可能的答案,至少在当前的API(MS Project 2013)中:

https://www.add-in-express.com/creating-addins-blog/2014/02/28/creating-and-modifying-ms-project-files-programmatically/#comment-424755