mschart

c# mschart -- 코드만으로 chart 만들기

자유프로그램 2019. 2. 20. 14:50
반응형

c# mschart -- 코드만으로 chart 만들기






--

using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
private void Form1_Load(object sender, EventArgs e)
{
this.ChartLoad();
}
private void ChartLoad()
{
this.mychart = new Chart();
ChartArea ca1 = new ChartArea();
ca1.Name = "ca1";
Legend leg1 = new Legend();
leg1.Name = "leg1";
Series sr1 = new Series();
sr1.Name = "sr1";
sr1.ChartArea = "ca1";
sr1.Legend = "leg1";
this.mychart.ChartAreas.Add(ca1);
this.mychart.Series.Add(sr1);
this.mychart.Legends.Add(leg1);
//this.mychart.Series[0].ChartType = SeriesChartType.Column; // chart type 지정
this.mychart.Size = new Size(650, 650); // chart 크기 지정
this.Controls.Add(this.mychart);
this.mychart.Location = new Point(60, 30); // 해당 윈도우내 chart 위치 (left upper)
this.mychart.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
this.mychart.BackColor = Color.Yellow;
ca1.BackColor = Color.FromArgb(229, 229, 229);
this.mychart.Name = "mychart1";
this.mychart.MouseDown += new MouseEventHandler(this.OnmychartMouseDown);
this.mychart.MouseMove += new MouseEventHandler(this.OnmychartMouseMove);
this.mychart.MouseUp += new MouseEventHandler(this.OnmychartMouseUp);
this.mychart.PostPaint += new EventHandler<ChartPaintEventArgs>(this.OnmychartPostPaint);
this.ChartDataLoad(this.mychart);
}
private void ChartDataLoad(Chart chart)
{
int dataCount = 50;
Random rnd = new Random();
for (int i = 1; i < dataCount + 1; i++)
{
chart.Series[0].Points.AddXY(i, rnd.Next(30, 300)); // data 입력하기
}
chart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = false; // scrollbar 위치
}
private void OnmychartMouseDown(object sender, MouseEventArgs e)
{
//Console.WriteLine(((Chart)sender).Name);
//Console.WriteLine($"Down {e.Location}");
}
private void OnmychartMouseMove(object sender, MouseEventArgs e)
{
Console.WriteLine(((Chart)sender).Name);
Console.WriteLine(e.Location);
mychart.Invalidate(); // 차트 다시그리기
}
private void OnmychartMouseUp(object sender, MouseEventArgs e)
{
//Console.WriteLine(((Chart)sender).Name);
//Console.WriteLine($"Up {e.Location}");
}
private void OnmychartPostPaint(object sender, ChartPaintEventArgs e)
{
Console.WriteLine("paint event...");
}





반응형