Microsoft Project 2010 Task Outlinelevel в C#, вызывающий исключение во время выполнения

Я использую С# в Visual Studio 2015 для добавления задач в MS Project и изменения уровня структуры. Хотя я могу добавлять задачи, я получаю ошибку времени выполнения, когда пытаюсь изменить файл OutlineLevel. Я узнал, что Task.OutlineLevel это short, и поэтому я попробовал несколько способов привести к short - ничего не получилось. Вот код.

private void button_Taskcount_Click(object sender, EventArgs e)
{
    Int16 level;
    // label_counttasks.Text = myProject.Name + "has " + myProject.Tasks.Count + " tasksom" ;
    MSProject.Project myProject = Globals.ThisAddIn.Application.ActiveProject;


    MSProject.Task myTask;
    myTask = myProject.Tasks.Add("New Task");

    myTask = myProject.Tasks.Add("New Task 2",myTask.UniqueID);

    level = (Int16)(myTask.OutlineLevel + 1);
    myTask.OutlineLevel = level;
}

Я получаю сообщение об ошибке «Аргумент недействителен». Я потратил на это 6 часов..

Я хочу изменить уровень контура myTask. Так же пробовал myTask.OutlineIndent() - выдает ту же ошибку.


person Natraj Ram    schedule 27.05.2016    source источник
comment
Согласно MSDN, Task.OutlineLevel — это integer: msdn.microsoft.com/en-us/library/office/   -  person Lews Therin    schedule 27.05.2016
comment
На какой именно линии он взрывается?   -  person Ann L.    schedule 27.05.2016
comment
Кстати, по крайней мере, согласно документации, вторым параметром Tasks.Add должна быть позиция, которую задача займет в коллекции задач. Task.UniqueID не таков: это идентификатор. Хотя это может быть то же самое, что и для первых нескольких задач, вы не можете предполагать, что так будет всегда.   -  person Ann L.    schedule 27.05.2016
comment
Task.Outlinelevel является коротким в Project 2010 и целым числом в 2013: 0 (   -  person Natraj Ram    schedule 28.05.2016
comment
Ошибка в последней строке, где я меняю уровень контура. Если я скажу myTask.Outlinelevel = myTask.Outlinelevel, это сработает, но ничего с другим числом, т. е. myTask.Outlinelevel = 2 или (короткое) 2, тоже не работает.   -  person Natraj Ram    schedule 28.05.2016


Ответы (1)


Отвечая на мой собственный вопрос после еще 6 часов поиска. Оказывается, я пытался изменить уровень структуры первой задачи, что не разрешено. Для второй задачи, которую я добавлял, я использовал параметр «до» в качестве первой задачи. Поэтому задача была добавлена ​​как первая задача. Поэтому, когда я попытался изменить уровень структуры добавленной задачи (которая теперь является первой задачей), он, как и ожидалось, пожаловался, поскольку вы не можете сделать уровень структуры первой задачи больше 1.

person Natraj Ram    schedule 29.05.2016