# [ C# chart控件实时动态显示数据

    1. ](http://blog.csdn.net/lj22377/article/details/38373609)
    2. 标签:
    3. [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)
    4. 2014-08-04 18:519641人阅读 [评论](http://blog.csdn.net/lj22377/article/details/38373609#comments)(0) [收藏](#) [举报](http://blog.csdn.net/lj22377/article/details/38373609#report).![](https://cdn.nlark.com/yuque/0/2022/jpg/21447204/1659743635091-8c5109b7-a5b0-4834-8024-6880d2c6d935.jpg)分类:
    5. WinForm_4_
    6. ![](https://cdn.nlark.com/yuque/0/2022/jpg/21447204/1659743635194-c3f8ea26-81ed-4964-9663-6803c95d4904.jpg)
    7. .版权声明:本文为博主原创文章,未经博主允许不得转载。

    这里介绍了一个最简单的实时显示数据的完整示例,
    本文参考了 使用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

    1. private void InitChart()
    2. {
    3. DateTime time = DateTime.Now;
    4. chartTimer.Interval = 1000;
    5. chartTimer.Tick += chartTimer_Tick;
    6. chartDemo.DoubleClick += chartDemo_DoubleClick;
    7. Series series = chartDemo.Series[0];
    8. series.ChartType = SeriesChartType.Spline;
    9. chartDemo.ChartAreas[0].AxisX.LabelStyle.Format = “HH:mm:ss”;
    10. chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
    11. chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
    12. chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
    13. chartTimer.Start();
    14. }

      view plain copy
    15. void chartTimer_Tick(object sender, EventArgs e)
    16. {
    17. Random ra = new Random();
    18. Series series = chartDemo.Series[0];
    19. series.Points.AddXY(DateTime.Now, ra.Next(1, 10));
    20. chartDemo.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 5;
    21. //throw new NotImplementedException();
    22. }

      view plain copy
    23. void chartDemo_DoubleClick(object sender, EventArgs e)
    24. {
    25. chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
    26. chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
    27. chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
    28. //throw new NotImplementedException();
    29. }

    view plain copy

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. using System.Windows.Forms.DataVisualization.Charting; //需要添加的命名空间
    11. namespace ChartRealTimeShow
    12. {
    13. public partial class Form1 : Form
    14. {
    15. public Form1()
    16. {
    17. InitializeComponent();
    18. InitChart();
    19. }
    20. System.Windows.Forms.Timer chartTimer = new System.Windows.Forms.Timer();
    21. private void InitChart()
    22. {
    23. DateTime time = DateTime.Now;
    24. chartTimer.Interval = 1000;
    25. chartTimer.Tick += chartTimer_Tick;
    26. chartDemo.DoubleClick += chartDemo_DoubleClick;
    27. Series series = chartDemo.Series[0];
    28. series.ChartType = SeriesChartType.Spline;
    29. chartDemo.ChartAreas[0].AxisX.LabelStyle.Format = “HH:mm:ss”;
    30. chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
    31. chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
    32. chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
    33. chartTimer.Start();
    34. }
    35. void chartDemo_DoubleClick(object sender, EventArgs e)
    36. {
    37. chartDemo.ChartAreas[0].AxisX.ScaleView.Size = 5;
    38. chartDemo.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
    39. chartDemo.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
    40. //throw new NotImplementedException();
    41. }
    42. void chartTimer_Tick(object sender, EventArgs e)
    43. {
    44. Random ra = new Random();
    45. Series series = chartDemo.Series[0];
    46. series.Points.AddXY(DateTime.Now, ra.Next(1, 10));
    47. chartDemo.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 5;
    48. //throw new NotImplementedException();
    49. }
    50. }
    51. }

    .

    • 上一篇C# Excel CSV DataTable DataSet 相关代码及资料整理
    • 下一篇移除快捷方式 用命令启动应用程序

      1. __
      2. [c# chart 鼠标放在数据点上出现的小提示](http://blog.csdn.net/rztyfx/article/details/45912821)
      1. __
      2. [使用MSChart实时动态显示折线图](http://blog.csdn.net/Shining0/article/details/9358289)
      1. __
      2. [C#绘制实时曲线](http://blog.csdn.net/ikevin/article/details/49848645)
      1. __
      2. [C# Chart控件使用心得](http://blog.csdn.net/zhengyingcan/article/details/47263357)
      1. __
      2. [C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性](http://blog.csdn.net/u011981242/article/details/51045643)
      1. __
      2. [C#在winform中实时显示即时时间](http://blog.csdn.net/feiyangyongran/article/details/25316633)
      1. __
      2. [chart图像刷新](http://blog.csdn.net/lllljz/article/details/7734762)
      1. __
      2. [C#中多线程更新Chart控件与BeginInvoke](http://blog.csdn.net/sudoRoger/article/details/54955328)
      1. __
      2. [chart控件的简单使用](http://blog.csdn.net/sunnyloves/article/details/5661841)
      1. __
      2. [chart 控件的各种数据绑定(…](http://blog.csdn.net/fuyoufang1/article/details/25150157)