All Projects → jakesee → ganttchart

jakesee / ganttchart

Licence: MIT license
The Winforms Gantt Chart is the .NET Winforms control originally hosted on CodePlex (http://ganttchart.codeplex.com)

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to ganttchart

smart-gantt-chart
Gantt Web Component
Stars: ✭ 15 (-90%)
Mutual labels:  gantt-chart, gantt
Krypton-Toolkit-Suite-NET-Core
A update to Component factory's krypton toolkit to support .NET Framework 3.5 to .NET Core
Stars: ✭ 27 (-82%)
Mutual labels:  winforms, dotnet-framework
Wl Gantt
wl-gantt:一个简单易用且高度可配置的甘特图进度计划项目管理插件。An easy-to-use gantt plug-in for the vue framework.
Stars: ✭ 231 (+54%)
Mutual labels:  gantt-chart, gantt
Gantt
Open Source Javascript Gantt
Stars: ✭ 2,634 (+1656%)
Mutual labels:  gantt-chart, gantt
ObjectListView
ObjectListView is a .NET ListView wired on caffeine, guarana and steroids. More calmly, it is a C# wrapper around a .NET ListView, which makes the ListView much easier to use and teaches it lots of neat new tricks.
Stars: ✭ 72 (-52%)
Mutual labels:  winforms, winforms-controls
gantt-chart
Web component implementation of a Gantt chart.
Stars: ✭ 24 (-84%)
Mutual labels:  gantt-chart, gantt
SevenSegment
A full-featured seven-segment control for WinForms.
Stars: ✭ 30 (-80%)
Mutual labels:  winforms, winforms-controls
Angular Gantt
Gantt chart component for AngularJS
Stars: ✭ 1,407 (+838%)
Mutual labels:  gantt-chart, gantt
ModernUIDoneRight
A rewrite of my old theme library for WinForms
Stars: ✭ 22 (-85.33%)
Mutual labels:  winforms, winforms-controls
C-Sharp-Learning-Journey
Some of the projects i made when starting to learn c#, winfroms and wpf
Stars: ✭ 95 (-36.67%)
Mutual labels:  winforms, dotnet-framework
Jquery Gantt
🌈 Lightweight jQuery gantt plugin.
Stars: ✭ 193 (+28.67%)
Mutual labels:  gantt-chart, gantt
Quick Screen Recorder
Lightweight desktop screen recorder for Windows.
Stars: ✭ 80 (-46.67%)
Mutual labels:  winforms, dotnet-framework
Vue Gantt Chart
使用Vue做数据控制的Gantt图表
Stars: ✭ 182 (+21.33%)
Mutual labels:  gantt-chart, gantt
gantt-task-react
Gantt chart for React with Typescript
Stars: ✭ 426 (+184%)
Mutual labels:  gantt-chart, gantt
React Gantt
A gantt chart for react
Stars: ✭ 129 (-14%)
Mutual labels:  gantt-chart, gantt
Gantt For React
🌿 Frappe Gantt components for React wrapper. 一个简单的甘特图 React 组件封装。
Stars: ✭ 250 (+66.67%)
Mutual labels:  gantt-chart, gantt
React Google Charts
A thin, typed, React wrapper over Google Charts Visualization and Charts API.
Stars: ✭ 944 (+529.33%)
Mutual labels:  gantt-chart, gantt
Plugin Gantt
Gantt charts for Kanboard
Stars: ✭ 73 (-51.33%)
Mutual labels:  gantt-chart, gantt
WinForms.FC UI
👀 FC_UI (Fun-Code User Interface) - библиотека пользовательских элементов управления (user control) для WinForms (.Net Framework / .Net Core).
Stars: ✭ 18 (-88%)
Mutual labels:  winforms, winforms-controls
Darkui
Dark themed control and docking library for .NET WinForms.
Stars: ✭ 539 (+259.33%)
Mutual labels:  winforms, dotnet-framework

.NET C# Winforms Gantt Chart Control

This .NET class library project provides a C# Winforms UserControl that draws a gantt chart using native GDI+.

Getting Started

The project is written with Microsoft Visual Studio 2017, simply download the latest source code from the master branch and build the library with the IDE.

Prerequisites

No pre-requisites other than the .NET Framework.

Installing

The project builds into a class library with example applications.

Running the tests

The source code includes a test project GanttChartTests which you can load and run within Microsoft Visual Studio 2017 from the test menu.

Features

  • Support time units Weeks, Days (default), Hours out-of-the-box, can be modified to support other time resolutions.
  • Single tasks, grouped tasks, precedent/dependant tasks, split tasks, tagged resources
  • Printing respects page margin, orientation and multiple pages per page
  • Percentage complete property for each task
  • Various mouse events for customising UI experience directly on the chart.
  • Comes with default mouse commands that can be overridden through inheritance.
  • Determines critical path and slack

Documentation

Jump directly to the doxygen documentation, or visit my blog for more information. (Please make sure you are reading the updated versions while I try to keep up, thanks.)

Basic Usage

Create Chart and Adding Tasks

public Form1()
{
    InitializeComponents();
    var manager = new ProjectManager();
    var task = new Task() { Name = "Hello World" };
    manager.Add(task);
    var chart = new Chart();
    chart.Init(manage);
    
    this.Controls.Add(chart);

    this.AutoScroll = true; // this is no longer required
}

Common Task Manipulation

You can manipulate the task through code using various methods in the ProjectManager:

// Set task durations
_mManager.SetDuration(wake, 3);
// Give the Tasks some organisation, setting group and
// precedents e.g. make "wake" task a subtask under "work"
_mManager.Group(work, wake);
// Setting task dependencies e.g. make "wake" task a precedent of "brush teeth" task
_mManager.Relate(wake, teeth);
// Assigning Resources e.g. add "jake" resource to "wake" task
_mManager.Assign(wake, jake);
// splitting a tasks e.g. split the "pack up" task into 2 new tasks
_mManager.Split(pack, new MyTask(_mManager), new MyTask(_mManager), 2);
// set some tooltips to show the resources in each task
// e.g. set a tooltip on the "wake" task
_mChart.SetToolTip(wake, string.Join(", ", _mManager.ResourcesOf(wake).Select(x => (x as MyResource).Name)));

Custom Task Data: Different colors for every tasks

You can change the default task appearance for all task, or as in here change individual task color as a demo for adding custom business data to tasks.

public partial class ExampleSimple : Form
{
  ProjectManager _mProject;
  public ExampleSimple()
  {
    InitializeComponent();
    _mProject = new ProjectManager();
    _mProject.Add(new Task() { Name = "New Task" });
    _mProject.Add(new ColoredTask() { Name = "Purple Task", Color = Color.Purple });
    _mProject.Add(new ColoredTask() { Name = "Gold Task", Color = Color.Gold });
    _mChart.Init(_mProject);
    // Custom behavior on paint task
    _mChart.PaintTask += (s, e) =>
    {
        ColoredTask ctask = e.Task as ColoredTask;
        if (ctask != null)
        {
            var format = new TaskFormat();
            format = e.Format;
            format.BackFill = new SolidBrush(ctask.Color);
            e.Format = format;
        }
    };
		
    // Grab custom data for tasks
    _mChart.TaskSelected += (s, e) =>
    {
        ColoredTask ctask = e.Task as ColoredTask;
        if (ctask != null)
        {
            MessageBox.Show("Selected " + ctask.Color.ToString());
        }
    };
  }
}

// Custom task with business data
public class ColoredTask : Task
{
    public ColoredTask() : base() {}
    public Color Color { get; set; }
}

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].