通过代码增加任务
前面两节用不同的方式增加了两个任务,这一节则通过代码来完成同样的工作。
下面的代码我做了详尽的注释,请务必仔细体会:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
gv.Tasks.Clear()
'清除原来的任务
gv.StartDate =
New
Date(2024,
9, 1)
'设置项目的起始日期,每个任务的开始日期不能早于此日期
Dim
tk1
As
New
Gantt.Task
'增加一个任务
tk1.Name =
"Task1"
'设置任务名名称
tk1.Mode =
Gantt.TaskMode.Automatic
'计划模式为自动
tk1.ConstraintDate =
New
Date(2024,
9, 2)
'约束日期
tk1.ConstraintType =
Gantt.ConstraintType.StartNoEarlierThan
'
起始日期不早于约束日期
tk1.Duration = 8
'任务持续时间为8个工作日
tk1.DurationUnits =
Gantt.DurationUnits.Days
'设置时间单位为天,因为默认就是天,所以这行代码可以省略。
gv.Tasks.Add(tk1)
'将任务添加到Tasks集合
Dim
tk2
As
New
Gantt.Task()
'增加一个任务
tk2.Name =
"Task2"
'设置任务名称
tk2.Mode =
Gantt.TaskMode.Automatic
'计划模式为自动
tk2.ConstraintDate =
New
Date(2024,
9, 13)
'约束日期
tk2.ConstraintType = Gantt.ConstraintType.StartNoEarlierThan
'
起始日期不早于约束日期
tk2.Duration = 6
'任务持续时间为6个工作日
Dim
pre
As
New
Gantt.Predecessor()
'定义一个前置类
pre.PredecessorTask = tk1
'
设置前驱任务为Task1
pre.PredecessorType =
Gantt.PredecessorType.FinishToStart
'两个任务的关系为"FinishToStart"
,也就是前驱任务完成后才开始本任务
tk2.Predecessors.Add(pre)
'将
前置类添加到Predecessors集合
gv.Tasks.Add(tk2)
'将任务添加到Tasks集合