# [
C# chart控件实时动态显示数据
](http://blog.csdn.net/lj22377/article/details/38373609)
标签:
[c#](http://www.csdn.net/tag/c%23)[chart](http://www.csdn.net/tag/chart)[动态显示](http://www.csdn.net/tag/%e5%8a%a8%e6%80%81%e6%98%be%e7%a4%ba)
2014-08-04 18:519641人阅读 [评论](http://blog.csdn.net/lj22377/article/details/38373609#comments)(0) [收藏](#) [举报](http://blog.csdn.net/lj22377/article/details/38373609#report).分类:
WinForm_(4)_

.版权声明:本文为博主原创文章,未经博主允许不得转载。
这里介绍了一个最简单的实时显示数据的完整示例,
本文参考了 使用MSChart实时动态显示折线图 ,谢谢原作者的分享。
平台:VS2013,C#windows程序。
源代码下载:http://download.csdn[.NET](http://lib.csdn.net/base/dotnet)/detail/lj22377/7713939
1、首先,将chart控件添加到窗口。
2、设置chart - series 主要t属性:
2.1 IsXValueIndexed = true;
2.2 XValueType = Time;
3、编写初始化函数:
view plain copy
- private void InitChart()
- {
- DateTime time = DateTime.Now;
- chartTimer.Interval = 1000;
- chartTimer.Tick += chartTimer_Tick;
- chartDemo.DoubleClick += chartDemo_DoubleClick;
- Series series = chartDemo.Series[0];
- series.ChartType = SeriesChartType.Spline;
- chartDemo.ChartAreas[0].AxisX.LabelStyle.Format = “HH:mm:ss”;
- chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
- chartTimer.Start();
- }
view plain copy - void chartTimer_Tick(object sender, EventArgs e)
- {
- Random ra = new Random();
- Series series = chartDemo.Series[0];
- series.Points.AddXY(DateTime.Now, ra.Next(1, 10));
- chartDemo.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 5;
- //throw new NotImplementedException();
- }
view plain copy - void chartDemo_DoubleClick(object sender, EventArgs e)
- {
- chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
- //throw new NotImplementedException();
- }
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Windows.Forms.DataVisualization.Charting; //需要添加的命名空间
- namespace ChartRealTimeShow
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- InitChart();
- }
- System.Windows.Forms.Timer chartTimer = new System.Windows.Forms.Timer();
- private void InitChart()
- {
- DateTime time = DateTime.Now;
- chartTimer.Interval = 1000;
- chartTimer.Tick += chartTimer_Tick;
- chartDemo.DoubleClick += chartDemo_DoubleClick;
- Series series = chartDemo.Series[0];
- series.ChartType = SeriesChartType.Spline;
- chartDemo.ChartAreas[0].AxisX.LabelStyle.Format = “HH:mm:ss”;
- chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
- chartTimer.Start();
- }
- void chartDemo_DoubleClick(object sender, EventArgs e)
- {
- chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
- chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
- //throw new NotImplementedException();
- }
- void chartTimer_Tick(object sender, EventArgs e)
- {
- Random ra = new Random();
- Series series = chartDemo.Series[0];
- series.Points.AddXY(DateTime.Now, ra.Next(1, 10));
- chartDemo.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 5;
- //throw new NotImplementedException();
- }
- }
- }
- 上一篇C# Excel CSV DataTable DataSet 相关代码及资料整理
-
_•_
[c# chart 鼠标放在数据点上出现的小提示](http://blog.csdn.net/rztyfx/article/details/45912821)
_•_
[使用MSChart实时动态显示折线图](http://blog.csdn.net/Shining0/article/details/9358289)
_•_
[C#绘制实时曲线](http://blog.csdn.net/ikevin/article/details/49848645)
_•_
[C# Chart控件使用心得](http://blog.csdn.net/zhengyingcan/article/details/47263357)
_•_
[C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性](http://blog.csdn.net/u011981242/article/details/51045643)
_•_
[C#在winform中实时显示即时时间](http://blog.csdn.net/feiyangyongran/article/details/25316633)
_•_
[chart图像刷新](http://blog.csdn.net/lllljz/article/details/7734762)
_•_
[C#中多线程更新Chart控件与BeginInvoke](http://blog.csdn.net/sudoRoger/article/details/54955328)
_•_
[chart控件的简单使用](http://blog.csdn.net/sunnyloves/article/details/5661841)
_•_
[chart 控件的各种数据绑定(…](http://blog.csdn.net/fuyoufang1/article/details/25150157)