用代码设置列

一般用户 请跳过本节的内容。

类型TaskPropertyColumn用于表示甘特图中的列,例如:

Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView
Dim
tcp As Gantt.TaskPropertyColumn = gv.Columns.Search(Gantt.TaskProperty.Start) '引用"开始日期"
tcp.Caption =
"开始" '修改列标题
tcp.Format =
"yyyyMd" '设置显示格式
tcp.TextAlign = HorizontalAlignment.Right
'设置文本排列方式
tcp.Width = 100
'设置列宽
tcp.Visible =
True '设置
gv.GridWidth = 330
'设置表格宽度

Gantt.TaskProperty是一个枚举,用于索引具体的列,可选值有:

Mode: 计划模式
Name: 任务名称
Duration: 持续时间
DurationUnits: 时间单位
Start: 开始时间
Finish: 结束时间
PercentComplete: 完成百分比
ConstraintType: 约束类型
ConstraintDate: 约束日期
Predecessors: 前驱任务
Deadline: 截止日期
Calendar: 日历
ResourceNames: 资源名称
Notes: 备注

批量设置列

GanttView的SetColumns方法,用于批量设置列,例如:

Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView
Dim
prps() As Gantt.TaskProperty = {Gantt.TaskProperty.Mode, Gantt.TaskProperty.Name, Gantt.TaskProperty.Start,
Gantt.TaskProperty.Duration, Gantt.TaskProperty.Finish, Gantt.TaskProperty.PercentComplete}
'指定要显示的列
Dim
nams() As String = {"计划模式", "任务名称", "开始日期", "持续天数", "结束日期", "完成百分比"} '指定列标题
Dim
wids() As Integer = {70, 100, 100, 70, 100, 50} '指定列宽
Dim
vibs() As Boolean = {True, True, True, True, False, False} '指定列是否可见
gv.GridWidth = 370
'指定 表格宽度
gv.SetColumns(prps, nams, wids, vibs)
'批量设置列
'
单独设置某列的属性
Dim
tcp As Gantt.TaskPropertyColumn = gv.Columns.Search(Gantt.TaskProperty.Start)
tcp.Format =
"Md"
tcp.TextAlign = HorizontalAlignment.Right
tcp = gv.Columns.Search(Gantt.TaskProperty.Duration)
tcp.TextAlign = HorizontalAlignment.Right

执行上面的代码后,甘特图将有六列,前四列默认可见,后两列默认隐藏。

需要注意的是,除了这六列,其他列都不再可用,你现在单击工具栏“表格列”按钮,只会看到六列可选:

重要提示:

所有关于列的代码,都应该在加载XML文件或绑定数据表之后执行,否则会被覆盖。


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