نمودار گانت در#C

دوشنبه 30 شهریور 1394

در این مقاله قصد داریم آموزشی درباره نحوه ایجاد نمودار گانت در سی شارپ و همچنین نحوه ذخیره فیزیکی نمودار بپردازیم.

نمودار گانت  در#C

نمودار گانت چیست و چه کاربردی دارد؟

نمودار گانت نوعی نمودار میله ای است که برنامه زمانبندی پروژه را نشان می‌دهد. گانت چارت وسیله‌ای مفید برای برنامه‌ریزی و زمانبندی پروژه‌ها می‌باشد.

برای شروع یک پروژه از نوع winform ایجاد میکنیم

در این مقاله قصد داریم در سه سطر مختلف نمودار را نشان دهیم و همچنین با کلیک راست کردن بر روی هر کدام از نمودار ها ، آن نمودار به صورت تصویر دخیره شود.

برای شروع از toolBox یک tableLayoutPanel برای ایجاد سه سطر کردن نمودار انتخاب میکنیم

سپس در متد load  فرم ،کد های زیر را برای ایجاد نمودار در سه سطر مینویسیم این کد های متیواند به صورت داینامیک از بانک اطلاعاتی هم خوانده شود

ganttChart1 = new GanttChart();
ganttChart1.AllowChange = false;
ganttChart1.Dock = DockStyle.Fill;

ganttChart1.FromDate = new DateTime(2015, 12, 12, 0, 0, 0);
ganttChart1.ToDate = new DateTime(2015, 12, 24, 0, 0, 0);
tableLayoutPanel1.Controls.Add(ganttChart1, 0, 1);

ganttChart1.MouseMove += new MouseEventHandler(ganttChart1.GanttChart_MouseMove);
ganttChart1.MouseMove += new MouseEventHandler(GanttChart1_MouseMove);
ganttChart1.MouseDragged += new MouseEventHandler(ganttChart1.GanttChart_MouseDragged);
ganttChart1.MouseLeave += new EventHandler(ganttChart1.GanttChart_MouseLeave);
ganttChart1.ContextMenuStrip = ContextMenuGanttChart1;

List<BarInformation> lst1 = new List<BarInformation>();

lst1.Add(new BarInformation("Row 1", new DateTime(2015, 12, 12), 
	new DateTime(2015, 12, 16), Color.Aqua, Color.Khaki, 0));

lst1.Add(new BarInformation("Row 2", new DateTime(2015, 12, 13), 
	new DateTime(2015, 12, 20), Color.AliceBlue, Color.Khaki, 1));

lst1.Add(new BarInformation("Row 3", new DateTime(2015, 12, 14), 
	new DateTime(2015, 12, 24), Color.Violet, Color.Khaki, 2));

lst1.Add(new BarInformation("Row 2", new DateTime(2015, 12, 21), 
	new DateTime(2015, 12, 22, 12, 0, 0), Color.Yellow, Color.Khaki, 1));

lst1.Add(new BarInformation("Row 1", new DateTime(2015, 12, 17), 
	new DateTime(2015, 12, 24), Color.LawnGreen, Color.Khaki, 0));

foreach (BarInformation bar in lst1)
{
    ganttChart1.AddChartBar
    (bar.RowText, bar, bar.FromTime, bar.ToTime, bar.Color, bar.HoverColor, bar.Index);
} 

حال از برنامه اجرا بگیرید

حال برای آن که کابر با راست کلیک کردن روی هر کدام از نمودار ها بتواند تصویری از  آن نمودار را داشته باشد کافی است کد زیر را بنویسیم

  private void SaveImage(Control control)
        {
            GanttChart gantt = control as GanttChart;
            string filePath = Interaction.InputBox("آیا عکس را ذخیره کنم", "ذخیره تصویر", "C:\\Temp\\GanttChartTester.jpg");
            if (filePath.Length == 0)
                return;
            gantt.SaveImage(filePath);
            Interaction.MsgBox("عکس با موفقیت ذخیره شد ", MsgBoxStyle.Information);
        }

فقط این نکته را خاطر نشان کنیم که برای آن که تصویر ذخیره شود باید این مسیر را داشته باشید .

C:\\Temp\\GanttChartTester.jpg

موفق باشید

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 3k بازدید
  • 2 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید