winfrom如何实现可以拖动的甘特图呢,左边新建任务,右边根据新建任务生成一个甘特图
3条回答 默认 最新
关注 在WinForms中实现可以拖动的甘特图,可以使用第三方控件库来实现,例如DevExpress、TwinTech等。这些库都提供了丰富的API和示例代码,可以帮助您快速实现甘特图拖动功能 。以下是一个使用DevExpress实现可以拖动的甘特图的示例代码:
1.在Visual Studio中添加DevExpress控件库。
2.在窗体中添加DevExpress的GanttControl控件。
3.在窗体的Load事件中,添加以下代码初始化GanttControl控件:private void Form1_Load(object sender, EventArgs e) { // 设置GanttControl控件的属性 ganttControl1.Dock = DockStyle.Fill; ganttControl1.Zoom = 100; ganttControl1.ShowWeekNumbers = true; ganttControl1.ShowMonthHeaders = true; ganttControl1.ShowDayHeaders = true; ganttControl1.ScaleMode = ScaleMode.Strip; ganttControl1.AssignmentsTreeView.ShowResources = true; ganttControl1.AssignmentsTreeView.ShowResourceAssignments = true; ganttControl1.TimelineView.AxisX.MajorGrid.Enabled = false; ganttControl1.TimelineView.AxisX.MinorGrid.Enabled = false; ganttControl1.TimelineView.AxisY.MajorGrid.Enabled = false; ganttControl1.TimelineView.AxisY.MinorGrid.Enabled = false; // 添加任务和资源 Task task1 = new Task("Task 1", new DateTime(2023, 3, 1), new DateTime(2023, 3, 5)); Task task2 = new Task("Task 2", new DateTime(2023, 3, 6), new DateTime(2023, 3, 10)); Resource resource1 = new Resource("Resource 1"); Resource resource2 = new Resource("resource 2"); // 将任务分配给资源 task1.Resources = new List<Resource> { resource1, resource2 }; task2.Resources = new List<Resource> { resource1 }; // 添加任务和资源到GanttControl控件中 ganttControl1.Tasks.Add(task1); ganttControl1.Tasks.Add(task2); ganttControl1.Resources.Add(resource1); ganttControl1.Resources.Add(resource2); }
4.在GanttControl控件的MouseDown事件中,添加以下代码来开始拖动甘特图:
private void ganttControl1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ganttControl1.StartMoving(); } }
5.在GanttControl控件的MouseMove事件中,添加以下代码来移动甘特图:
private void ganttControl1_MouseMove(object sender, MouseEventArgs e) { if (ganttControl1.IsMoving) { Point point = e.Location; point.Offset(-ganttControl1.Left, -ganttControl1.Top); ganttControl1.Location = point; } }
6.在GanttControl控件的MouseUp事件中,添加以下代码来结束拖动甘特图:
private void ganttControl1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ganttControl1.StopMoving(); } }
这样就可以实现在WinForms中可以拖动的甘特图了。还可以使用GanttChart控件,它是一款开源且功能强大的C#甘特图控件,支持WinForm应用程序。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 在虚拟机中安装flash code
- ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
- ¥20 verilog状态机方法流水灯
- ¥15 pandas代码实现不了意图
- ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
- ¥25 LT码在高斯信道下的误码率仿真
- ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
- ¥15 yolov5目标检测并显示目标出现的时间或视频帧
- ¥15 电视版的优酷可以设置电影连续播放吗?
- ¥50 复现论文;matlab代码编写