This is a highly-customizable Gantt Chart control for WinForms
Chart ganttChart = new Chart(); //Can also be added via the designer
ganttChart.StartDate = DateTime.Today;
ganttChart.EndDate = DateTime.Today.AddDays(5);
this.Controls.Add(ganttChart); //Add the chart to the form
ganttChart.Dock = DockStyle.Fill; //Expand the chart to fill the form
Row row = new Row("Row 1");
row.TimeBlocks.Add(new TimeBlock("Shift 1", DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)) { Color = Color.Red });
ganttChart.Rows.Add(row);
ganttChart.UpdateView();
- Highly-customizable rendering, allowing control over
- Order of rows
- Days shown over chart (along with start and end hour of each day)
- Whether or not to show the "now indicator" (red line indicating the current time)
- Fully customizable formats for displayed time and day labels (above the chart) using DateTime format strings
- Whether or not to show the horizontal or vertical grid lines
- Support for custom Holidays that "blocks out" the entire chart on that day
- Events triggered based on clicking or doubleclicking on Row headers, TimeBlocks, or the canvas itself