Chart作为微软提供绘制图表的控件,在刚开始使用时非常的迷茫,因为功能强大,涉及到的知识多,

一开始难以接收过来,但后天经过查找资料,耐心学习,终于还是有了一定的收获。

Chart相当于一个大的图纸,可以包含很多小的图纸ChartArea,一个ChartArea可以包含很多的Series,

Series即Point,画在ChartArea上的数据。

主要的思想就是添加Points的同时改变X轴的显示范围,以此来达到动态显示的目的。

代码解析:

Chart的相关设置

因为Chart控件是直接托入的,系统帮助初始化了,可以在对应的desiger.cs文件中找到。
还有事件的注册,属性等都可以在这个文件中找到。 //设置大小
MotorTestingChart.Height = 200;
MotorTestingChart.Width = 500; //设置在series上显示数值 Series是一个集合,需要有索引的方式指定
//MotorTestingChart.Series[0].IsValueShownAsLabel = true;//IsValueShowAsLable表示是否在图表的曲线上标出以标签的形式标出值 //设置Chart的边框样式
MotorTestingChart.BorderlineColor = Color.Blue;//边框颜色
MotorTestingChart.BorderlineDashStyle = ChartDashStyle.Solid;//边框的样式 Solid表示是实线
MotorTestingChart.BorderlineWidth = ;//边框的宽度 //拖入Chart控件会自带一个ChartArea
ChartArea mtxChartArea = MotorTestingChart.ChartAreas[];//获取ChartArea mtxChartArea.BackColor = Color.Lavender;//设置ChartArea的背景颜色
//X显示的最小值
mtxChartArea.AxisX.Minimum = ; //设置X轴的显示范围,在后续程序中将会用到
//X轴显示的最大值
mtxChartArea.AxisX.Maximum = ;
mtxChartArea.AxisY.Minimum = -;
mtxChartArea.AxisY.Maximum = ;
//X轴的标题
mtxChartArea.AxisX.Title = "时间";
//X轴的标题颜色
mtxChartArea.AxisX.TitleForeColor = Color.Red;
//X轴的刻度颜色
mtxChartArea.AxisX.LabelStyle.ForeColor = Color.Blue;
//指定自动轴的模式
mtxChartArea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
//设置轴的间隔
//chartArea.AxisX.Interval = 1;
mtxChartArea.AxisY.Title = "数值";
mtxChartArea.AxisY.TitleForeColor = Color.Red;
mtxChartArea.AxisY.LabelStyle.ForeColor = Color.Blue; #region X和Y轴的网格线 取消网格线
mtxChartArea.AxisX.MajorGrid = new Grid() { Enabled = false };
mtxChartArea.AxisY.MajorGrid = new Grid() { Enabled = false };
#endregion

//标题
Title mtTitle = new Title();
mtTitle.Name = "mtTitle";
mtTitle.Text = "飞行姿态"; //添加标题 MyIEqualityCompare为自定义的比较类,继承自IEqualityCompare接口
if (!MotorTestingChart.Titles.Contains<Title>(mtTitle, new MyIEqualityComparer<Title>()))
{
MotorTestingChart.Titles.Add(mtTitle);
} //设置滚动条
mtxChartArea.AxisX.ScrollBar.IsPositionedInside = false;
mtxChartArea.AxisX.ScrollBar.Enabled = false;
//Legend 图例
Legend mtLegend = new Legend("mtLegend");
//mtLegend.LegendStyle = LegendStyle.Table;
mtLegend.Title = "图例";
mtLegend.ForeColor = Color.Red;
mtLegend.BackColor = Color.HotPink;
if (!MotorTestingChart.Legends.Contains<Legend>(mtLegend, new MyIEqualityComparer<Legend>()))
{
MotorTestingChart.Legends.Add(mtLegend);
} //拖入Chart控件会自带一个Series
Series mtSeries = MotorTestingChart.Series[];//获取Series
mtSeries.Legend = "mtLegend";//绑定在那个图例中显示
mtSeries.LegendText = "mtxSeries";//在图例中显示的文字
mtSeries.Color = Color.Red;//线的颜色,同时也是所画图标的颜色,绑定在一起
mtSeries.ChartType=SeriesChartType.Spline;//设置Chart类型,就是以怎样的形式画图表 mtSerise.ChartArea=MotorTestingChart.ChartArea[0];//是通过Series来绑定ChartArea的

Timer定时器

这部分的代码的写在定时器注册的函数中。

Series series = GyroscoprChart.Series[0];//获取Series

series.Points.AddY(r.Next(1,100));//向Series的Points添加值

 if (num0 > )//num是用来统计Series.Points的个数的,因为在Chart的设置中设置了X轴显示的范围为:0到10,
{ //所以Series的点个数大于10个之后就改变X数值的显示范围,以此来达到实时显示的目的,同时因为Series的Point的添加也是跟随定时器的
//所以它们配合的非常好
gyrChartArea.AxisX.Minimum = gyrChartcount - ;
gyrChartArea.AxisX.Maximum = gyrChartcount; }

使用Chart控件进行实时监控的更多相关文章

  1. winform Chart控件 获取鼠标处坐标值方法

    Chart控件本身功能强大,应用广泛,因此其属性.方法也很多.此处介绍在很多应用中需要查看鼠标位置处坐标值的一些方法 1,调用Chart事件  GetToolTip 利用ToolTipEventArg ...

  2. 用Chart控件绘制动态图表

    进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量.ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用.本文仅以VC++为 ...

  3. C# chart控件运用

    为了弄一个实时数据显示的窗口,最近一周时间都耗在这个控件上了,属性有点多(下面列的是一些常用的) 后来干脆写代码把他们封装起来,各个chart直接来调用它,省得到属性里面去设置. chart内的一些元 ...

  4. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  5. ASP.NET中的chart控件绑定SQL Server数据库

    网上很多的chart控件的实例都没有绑定数据库,经过一番摸索后,终于实现了chart控件绑定数据库. 首先,在Visual Studio中建立一个网站,新建一个WebForm项目,名称为ChartTe ...

  6. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  7. javascript曲线图和面积图Line & Area chart控件功能及下载

    Line & Area chart 控件是一款新型的.可用性极强的曲线图和面积图产品.一个您网站的访问者可以放大他感兴趣的一段区域,打开和关闭数值气球,并可显示和隐藏图表.您能创建简单.堆积. ...

  8. Chart控件,把Y轴设置成百分比

    这次所有属性设置都用代码(就当整理便于以后查询). 在窗体放置一个Chart控件,未做任何设置:然后编写代码: //设置 chart2.Legends[ ].Enabled = false;//不显示 ...

  9. C# chart控件绘制曲线

    在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图.柱状图什么的了. using Syst ...

随机推荐

  1. javascript中隐藏显示的样式表属性

    display属性 隐藏不占据位置 visibility属性 隐藏占据位置 //使用display的样式属性 隐藏 显示 //隐藏后不占据文档流位置 function showAddForm(){ v ...

  2. JVM性能调优实践——JVM篇

    前言 在遇到实际性能问题时,除了关注系统性能指标.还要结合应用程序的系统的日志.堆栈信息.GClog.threaddump等数据进行问题分析和定位.关于性能指标分析可以参考前一篇JVM性能调优实践-- ...

  3. BZOJ1010玩具装箱 - 斜率优化dp

    传送门 题目分析: 设\(f[i]\)表示装前i个玩具的花费. 列出转移方程:\[f[i] = max\{f[j] + ((i - (j + 1)) + sum[i] - sum[j] - L))^2 ...

  4. 第三方微信支付,WAP、H5、APP、公众号支付的区别

    你说一个微信支付被腾讯搞了N个版本出来,是技术问题还收费原因不得而知.公众号支付,H5(wap)支付,APP支付.看得小编一头雾水. 带点N个疑问? 1.公众号支付是在公众号里支付,支众号里引入的三方 ...

  5. 分布式服务网关(Web Api)

    分布式服务网关(Web Api) kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法.不过由于其难以理解,所以在很长的一段时间内一直没有搞懂.虽然网上有很多资料,但是鲜见好的博客能简单明了 ...

  6. 讨论IM软件企业知识—会谈session的概念,附连到IM软件层次图

    session通常当今计算机领域,IM软体session.老IM那里有两个:第一个是逻辑层session参与者管理会议.新闻列表,会话类型等:有协议层session.主要代表client随着serve ...

  7. error: expected declaration or statement at end of input----solved

    error: expected declaration or statement at end of input 解决方法: 1.程序缺少一个括号相应地 2.而不添加头文件 版权声明:本文博主原创文章 ...

  8. 编程算法 - 二叉搜索树(binary search tree) 代码(C)

    二叉搜索树(binary search tree) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 二叉搜索树(binary search tree)能 ...

  9. git 合并本地分支到远程分支

    第一种方法: git 快速合并本地分支到远程分支1.git branch -a 查看所有分支2.git checkout origin/分支名称3.git checkout 分支名称完成 ------ ...

  10. Shell Step by Step (3) —— Stdin &amp; if

    4.输入输出 #! /bin/bash # Read users input and then get his name read -p "Please input your first n ...