news 2026/8/6 17:42:02

DevExpress WinForms Gantt组件——轻松可视化项目时间表内的时间轴

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DevExpress WinForms Gantt组件——轻松可视化项目时间表内的时间轴

DevExpress WinForms的Gantt组件在v23.1中附带了一个新的时间轴UI元素,Gantt(甘特图)控件本身允许您计划/管理项目,而时间轴显示单个任务的开始和截止日期,并提供项目进度的鸟瞰图。

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress新旧版本帮助文档下载可进QQ qun获取:169725316

Timeline(时间轴)UI

时间轴可以显示多个带有任务/里程碑、今日指示器和日期范围选择器的时间轴条。

时间轴的上下文菜单允许用户添加/删除时间轴条,从时间轴中删除任务/里程碑,或快速导航到甘特图树和图表中的任务。

显示时间轴

Gantt(甘特图)控件可以在顶部或底部显示时间轴。

using DevExpress.XtraGantt; // Displays a timeline at the top of the Gantt control. ganttControl1.OptionsTimeline.TimelinePosition = TimelinePosition.Top;
用户体验

最终用户的选项包括:

  • 添加/删除任务和里程碑到/从时间轴
  • 添加/删除时间轴
  • 选择多个任务(单击一个任务并按住Ctrl键选择该任务)
  • 跳转到任务
  • 平移和缩放时间轴规模
  • 选择时间范围
  • 调整时间轴
时间轴自定义设置(API)

使用GanttControl.OptionsTimeline属性来访问和自定义时间轴设置:

  • TimelinePosition — 指定时间轴的可见性和位置。
  • AllowResize — 指定时间轴的高度是否可以由用户或代码修改。
  • TimelineHeight — 指定时间轴高度(以像素为单位)。
  • ShowTodayIndicator — 是否显示今日指标。
  • MinUnit/MaxUnit — 指定最小/最大时间间隔。

您可以根据特定条件修改单个任务的标题/详细信息/描述,要应用修改,请处理CustomTimelineItemText事件,甘特图控件为时间轴中显示的每个任务触发此事件。

我们还实现了Custom Draw APIs(自定义绘制API),方便您可以根据需要绘制时间轴条和任务,这些API包括:

  • CustomDrawTimelineBar
  • CustomDrawTimelineTask
将时间轴绑定到数据

使用以下属性将数据源中的字段映射到任务属性:

  • ChartMappings.TimelineCaption — 指定数据源中字段的名称(带有用于时间轴上的任务标题的字符串值)。
  • ChartMappings.VisibleInTimelineFieldName — 指定数据源中字段的名称(使用布尔值指定要在时间轴上显示哪些任务)。
public Form1() { InitializeComponent(); // Bind the Gantt control to a data source. ganttControl1.DataSource = TaskData.InitData(); // Configures the Gantt control's mappings. ganttControl1.TreeListMappings.KeyFieldName = "Id"; ganttControl1.TreeListMappings.ParentFieldName = "ParentId"; ganttControl1.ChartMappings.StartDateFieldName = "StartDate"; ganttControl1.ChartMappings.FinishDateFieldName = "EndDate"; ganttControl1.ChartMappings.TimelineCaption = "TimelineCaption"; // Maps the Gantt control to a field in a data source with Boolean values that // specify which tasks to display on the timeline when the application starts. ganttControl1.ChartMappings.VisibleInTimelineFieldName = "ShowInTimeline"; } public class TaskData { public TaskData(int id) { this.id = id; } int id; public int Id { get { return id; } } public string TimelineCaption { get { return string.Format("Timeline Caption: {0}", Name); } } public bool ShowInTimeline { get; set; } = false; public int ParentId { get; set; } public string Name { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public static List<TaskData> InitData() { return new List<TaskData>() { new TaskData(0){ Name = "Task A", ParentId = 0, StartDate = new DateTime(2023, 3, 1), EndDate = new DateTime(2024, 3, 31) }, new TaskData(1){ Name = "Task B", ParentId = 0, StartDate = new DateTime(2023, 3, 1), EndDate = new DateTime(2023, 7, 1), ShowInTimeline = true }, new TaskData(2){ Name = "Task C", ParentId = 0, StartDate = new DateTime(2023, 7, 1), EndDate = new DateTime(2023, 11, 1) }, new TaskData(3){ Name = "Task D", ParentId = 0, StartDate = new DateTime(2023, 11, 1), EndDate = new DateTime(2024, 3, 31) }, }; } }
所见即所得打印和导出

您可以打印/导出甘特图及其时间轴,支持的导出文件格式包括:PDF, XLS, XLSX, MHT, CSV, HTML, RTF, DOCX, TXT(或作为图像文件)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 17:40:05

1+X云计算初级A卷

一、单选题(每题10分&#xff0c;共200分) 1.在OSI模型中&#xff0c;HTTP协议工作在第(7)层&#xff0c;交换机工作在第(2)层(B)(10分) A.7/3 B.7/2 C.6/3 D.6/2 2.Linux有三个查看文件的命令&#xff0c;若希望在查看文件内容过程中可以用光标上下移动来查看文件内容&a…

作者头像 李华
网站建设 2026/8/6 17:34:52

04 Docker 安装常用软件 (mysql,redis), 解决docker的mysql相差8小时方法

目录 1. 安装docker版mysql(非常简易) 1.1 docker 拉取mysql -> 去docker官网 Docker Hub 查看mysql版本(选择一个下载) ​ -> 01 代码指令 -> 02 查看 mysql镜像下载情况 -> 03 启动镜像 启动指令01 正常 启动指令02: 添加这个(设置用户名) 异常 常见错误0…

作者头像 李华
网站建设 2026/8/6 17:33:14

51单片机模拟快递货柜GSM短信系统112-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

51单片机模拟快递货柜GSM短信系统112-21(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_ 产品功能描述&#xff1a; 本系统由STC89C52单片机、液晶LCD1602、按键、LED灯指示、继电器控制、GSM模块及电源组成。 1、按下确认按键&#xff0c;系统…

作者头像 李华
网站建设 2026/8/6 17:33:13

Sticky便签:Linux桌面效率工作的终极免费解决方案

Sticky便签&#xff1a;Linux桌面效率工作的终极免费解决方案 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 在Linux桌面环境中高效管理工作和生活信息&#xff0c;Sticky便签应用提供了一个…

作者头像 李华
网站建设 2026/8/6 17:30:45

差分放大电路变量分析:四步法破解对称电路难题

1. 这篇文章真正要解决的问题 如果你正在准备电子技术、模拟电路相关的考试&#xff0c;或者在工作中需要分析三极管放大电路&#xff0c;那么“对称电路”和“变量分析”这两个词&#xff0c;很可能让你感到既熟悉又头疼。熟悉是因为它们是模电课程的核心考点&#xff0c;头疼…

作者头像 李华