using GanttChartPoC.GanttChart; using System; using System.Windows.Forms; namespace GanttChartPoC { public partial class SampleForm : Form { private GanttData _ganttData; public SampleForm() { InitializeComponent(); } private void Reload() { _ganttData = new GanttData(new[] { new GanttMachine(new[] { new GanttMachineTask { Begin = new DateTime(2019, 06, 29, 2, 0, 0) , End = new DateTime(2019, 06, 29, 12, 50, 0) , Text = "排程文字" , Detail = $"1详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 29, 13, 0, 0) , End = new DateTime(2019, 06, 29, 22, 0, 0) , Text = "排程文字" , Detail = $"2详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 1, 0, 0) , End = new DateTime(2019, 06, 30, 6, 50, 0) , Text = "排程文字很长长长" , Detail = $"3详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 7, 0, 0) , End = new DateTime(2019, 06, 30, 18, 30, 0) , Text = "前一个超出色块要下移避免踩到" , Detail = $"4详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , }) {Name = "机台1"} , new GanttMachine(new[] { new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 0, 30, 0) , End = new DateTime(2019, 06, 30, 7, 30, 0) , Text = "排程文字很长2" , Detail = $"5详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 8, 30, 0) , End = new DateTime(2019, 06, 30, 15, 0, 0) , Text = "没被踩到也下移,因为不好计算" , Detail = $"6详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 16, 0, 0) , End = new DateTime(2019, 06, 30, 18, 0, 0) , Text = "右边预留一格空间呈现超出的文字" , Detail = $"7详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 19, 0, 0) , End = new DateTime(2019, 06, 30, 21, 0, 0) , Text = "自动调整机台行高度" , Detail = $"8详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , new GanttMachineTask { Begin = new DateTime(2019, 06, 30, 22, 0, 0) , End = new DateTime(2019, 06, 30, 23, 0, 0) , Text = "自动调整机台行高度" , Detail = $"9详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , }) {Name = "机台2"} , new GanttMachine(new GanttMachineTask[] { }) {Name = "机台3无任务"} , new GanttMachine(new[] { new GanttMachineTask { Begin = new DateTime(2019, 06, 29, 20, 0, 0) , End = new DateTime(2019, 06, 30, 7, 0, 0) , Text = "排程跨天了" , Detail = $"A详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行" } , }) {Name = "机台4"} , }); foreach (var machine in _ganttData.Machines) { foreach (var task in machine.Tasks) { task.Detail = $"{task.Begin:MM/dd HH:mm} - {task.End:MM/dd HH:mm}"; } } MainGanttChart.SetData(_ganttData); } private void NewToolStripButton_Click(object sender, EventArgs e) { Reload(); } private void TimelineOffsetTrackBar_ValueChanged(object sender, EventArgs e) { MainGanttChart.TimelineOffsetHours = TimelineOffsetTrackBar.Value; Reload(); } } }