使用代码设置样式

设置默认样式

如果要设置默认的任务条样式,可以参考代码:

Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView 

'设置自动计划任务条样式
Dim
st1 As Gantt.BarStyle = gv.BarStyles.Search(Gantt.BarType.AutoTask) '检索是否定义了自动任务样式
If
st1 Is Nothing Then '如果没有定义
    st1 =
New Gantt.BarStyle() '创建一个新样式
    st1.BarType = Gantt.BarType.AutoTask
'指定为自动任务条的样式
    gv.BarStyles.Add(st1)
'将样式添加到GanttViewBarStyles集合中
End
If
st1.BarShape = Gantt.BarShape.ThickBar
'设置形状
st1.BarPattern = Gantt.HatchPattern.ZigZag
'设置模式
st1.BarColor = Color.Beige
'设置颜色
st1.RightText1 = gv.Columns.Search(Gantt.TaskProperty.Name)
'任务条右侧文本文为任务名 

'设置手动任务条样式
st1 = gv.BarStyles.Search(Gantt.BarType.ManualTask)
'检索是否定义了手动任务样式
If
st1 Is Nothing Then '如果没有定义
    st1 =
New Gantt.BarStyle() '创建一个新样式
    st1.BarType = Gantt.BarType.ManualTask
'指定为手动任务条的样式
    gv.BarStyles.Add(st1)
'将样式添加到GanttViewBarStyles集合中
End
If
st1.BarShape = Gantt.BarShape.ThickBar
'设置形状
st1.BarPattern = Gantt.HatchPattern.ZigZag
'设置模式
st1.BarColor = Color.LightBLue
'设置颜色
st1.RightText1 = gv.Columns.Search(Gantt.TaskProperty.Name)
'任务条右侧文本文 为任务名 

'设置百分比进度条样式
st1 = gv.BarStyles.Search(Gantt.BarType.Progress)
'检索是否定义了百分比进度条样式
If
st1 Is Nothing Then '如果没有定义
    st1 =
New Gantt.BarStyle() '创建一个新样式
    st1.BarType = Gantt.BarType.Progress
'指定为百分进度条的样式
    gv.BarStyles.Add(st1)
'将样式添加到GanttViewBarStyles集合中
End
If
st1.BarShape = Gantt.BarShape.ThickBar
'设置形状
st1.BarPattern = Gantt.HatchPattern.Percent50
'设置模式
st1.BarColor = Color.Green
'设置颜色
st1.RightText1 = gv.Columns.Search(Gantt.TaskProperty.PercentComplete)
'任务条右侧文本为完成百分比

得到的效果为:

提示:

1、BarShape和BarPattern也可以用数字表示,数字就是你在“条形样式”窗口中所选项目的位置顺序号。

2、上下左右四个位置,都可以显示两个文本,例如你要在右侧显示两个文本,可以分别设置RightText1和RightText2属性:

st1.RightText1 = gv.Columns.Search(Gantt.TaskProperty.Name)
'右侧文本1文为任务名
st1.RightText2 = gv.Columns.Search(Gantt.TaskProperty.PercentComplete)
'右侧文本2文为百分比进度

设置单个任务的样式

设置单个任务的样式和设置默认样式代码一样,唯一差别是前者将样式添加到Task的BarSyles集合中,后这个将样式添加到GantView的BarStyles集合中,例如:

Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView
Dim
tk As Gantt.Task = gv.Tasks.Search("Task1") '注意我们是如何获取Task1
Dim
st1 As Gantt.BarStyle = tk.BarStyles.Search(Gantt.BarType.AutoTask) '检索Task1是否自定义了自动任务条形样式
If
st1 Is Nothing Then '如果没有
    st1 =
New Gantt.BarStyle() '则新建一个样式
    st1.BarType = Gantt.BarType.AutoTask
'指定为自动任务条的样式
    tk.BarStyles.Add(st1)
'奖样式添加到TaskBarStyles集合中
End
If
st1.BarShape = Gantt.BarShape.ThickBar
'设置形状
st1.BarPattern = Gantt.HatchPattern.ZigZag
'设置模式
st1.BarColor = Color.Beige
'设置颜色
st1.RightText1 = gv.Columns.Search(Gantt.TaskProperty.Name)
'右侧文本1文为任务名
st1.RightText2 = gv.Columns.Search(Gantt.TaskProperty.PercentComplete)
'右侧文本2文为百分比进度

st1 = tk.BarStyles.Search(gantt.BarType.Progress)
'检索Task1是否自定义了百分比进度条形样式
If
st1 Is Nothing Then '如果没有
    st1 =
New Gantt.BarStyle() '则新建一个样式
    st1.BarType = Gantt.BarType.Progress
'指定为百分比进度条的样式
    tk.BarStyles.Add(st1)
'将样式添加到TaskBarStyles集合中
End
If
st1.BarShape = Gantt.BarShape.ThickBar
'设置形状
st1.BarPattern = Gantt.HatchPattern.Percent50
'设置模式
st1.BarColor = Color.Blue
'设置颜色


本页地址:http://www.foxtable.com/webhelp/topics/4005.htm