2016-10-04 36 views
0

以下代碼(在VSTO插件的標準ThisAddIn類中)檢索有關要添加到MS Project(2013)的任務的信息,然後將實際任務添加到項目任務集合。問題是項目允許逐一添加任務,並在每次將任務添加到Tasks集合時重新繪製(刷新)項目視圖。它看起來很煩人。到目前爲止我找到並使用了Application.ScreenUpdating屬性來隱藏閃爍。MS Project的VSTO插件:一次顯示任務

這將是很好的準備任務的集合,並將它們所有在一起附加到活動的項目。任何人都可以更有經驗,請指出一種方法來實現這一點?如果完全可以使用當前的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; 
    } 
} 
+0

的技術,你可以嘗試,是對所有任務添加到一個新的.xml或Excel文件。然後,您可以使自動項目打開文件併合併到活動項目中。這可能會更快,並會一次發生。如果您嘗試,請告訴我們結果。是否有屏幕更新和計算= False幫助? –

+0

感謝您的回覆!是的,我已經在文件中準備了任務數據,在我的情況下是.csv,然後手動導入它。它沒問題,但值得注意的是,MS Project試圖調整傳入數據而不是默默接受數據。你剛剛讓我想到的是自動導入.csv。謝謝。 – watchaglass

回答