2016-12-21 10 views
0

Я пытаюсь написать приложение в C#, которое выбирает задачу с помощью уникального идентификатора. Я попытался использовать несколько методов. Первый с помощью метода «SelectTPTask»C# + MS Project

using Project = Microsoft.Office.Interop.MSProject; 
public static Project.Application prjApp; 
public static Project.Project msPrj; 

prjApp = new Project.Application(); 
prjApp.FileOpenEx(Path); 
prjApp.Visible = true; 
msPrj = prjApp.ActiveProject; 

if (msPrj.Tasks != null) 
    foreach (Project.Task task in msPrj.Tasks) 
    { 
     if (task.UniqueID == Id) 
     { 
      prjApp.SelectTPTask(task.UniqueID); 
      //prjApp.SelectRow(task.ID); 
     } 
    } 
    else 
    { 
     MessageBox.Show("Nothing found"); 
    } 

Но это дает неизвестную ошибку. Единственное, что заработало, это метод «SelectRow». Но он работает правильно только один раз, а затем выбирает неправильную задачу. Но если я перезапущу MS Project, он будет работать правильно 1 раз, а затем снова выбрать неправильные задачи.

+0

'дает неизвестную error', так как мы должны помочь? Мы не можем отлаживать фрагмент кода, не имея всего, и, поскольку он стоит, ваш пост не является минимальным, полным и проверяемым примером. –

ответ

0

Метод SelectRow принимает несколько аргументов, второй из которых указывает, является ли новый выбор относительно активной строки; по умолчанию True. Используйте False для второго аргумента, чтобы выбрать абсолютную строку.

Application.SelectRow Method (Project)

+0

Ох, спасибо! Это действительно работает! – GfiFer