关于TeeChart使用我会持续更新

关于TeeChart使用我会持续更新
这篇文章中我是在Winform窗体使用TeeChart2011控件,通过定时器实现了实时绘制曲线图(三个序列)。
先上一下效果图:

1.TeeChart2011.ocx的注册

TeeChart2011.ocx下载地址
下载好TeeChart2011.ocx后,32位系统将其放在C:\WINDOWS\System32目录下,64位系统将其放在C:\WINDOWS\SysWOW64,在该目录下以管理员身份运行命令提示符(可以再该目录下找到cmd.exe,以管理员身份运行即可),通过regsvr32命令注册该控件,我的64位系统,图示如下:

注册成功会弹出以下提示:

如果想要长期使用的话,注册前请将系统时间调至2000/1/1,注册后调回即可。
如果注销该控件的话,可以通过regsvr32 -u指令。

2.TeeChart控件的添加

(1)新建一个WinForm窗体程序,左侧工具栏新建一个选项卡,直接将System32或SysWOW64目录下的TeeChart2011.ocx拖拽到创建的选项卡中即可。

(2)拖拽一个TeeChart Pro Activex control到窗体上,拉伸到合适大小。
现在我们需要了解一下TeeChart的基本知识
a.axTChart:我们添加到窗体上的TeeChart控件。
b.series:数据序列(实际上就是我们画出的一条曲线或一个其他图形)。
c.axis:坐标轴(包含上下左右以及纵深轴,这里我们只用到底轴和左轴,即x轴和y轴)。
d.AddSeries():向axTChart添加一个数据序列。
e.AddXY():向Series添加一个点。

3.绘制简单的曲线图

有了这些知识我们就可以开始创建第一个曲线图了:

private void Form1_Load(object sender, EventArgs e)
{
//添加数据序列,并设置绘图类型
axTChart1.AddSeries(ESeriesClass.scFastLine);
//设置底轴和左轴的最大值最小值
axTChart1.Axis.Bottom.SetMinMax(0, 100);
axTChart1.Axis.Left.SetMinMax(0, 20);
//添加数据点
for (int i = 0; i < 100; i++)
{
axTChart1.Series(0).AddXY(i, 0.15 * i, "", 0);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13

4.动态绘图

根据以上内容,已经可以实现对已有数据一次性完成绘图,但是如果想要动态绘图,可以通过定时器来实现。代码如下。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

/// <summary>
/// 200ms定时器
/// </summary>
System.Timers.Timer t = new System.Timers.Timer(200);
/// <summary>
/// 用于生成随机数
/// </summary>
Random rd = new Random();
/// <summary>
/// x坐标
/// </summary>
int point_X = 0;
/// <summary>
/// y坐标
/// </summary>
int point_Y = 0;

private void Form1_Load(object sender, EventArgs e)
{
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
}

/// <summary>
/// 定时器触发绘图事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void theout(object source, System.Timers.ElapsedEventArgs e)
{
for (int i = 0; i < 3; i++)
{
//生成0-20中间的随机数
point_Y = rd.Next(20);
axTChart1.Series(i).AddXY(point_X, point_Y, "", 0);
point_X++;
}
}

private void btn_DrawPoints_Click(object sender, EventArgs e)
{
axTChart1.RemoveAllSeries();
axTChart1.Axis.Bottom.SetMinMax(0, 100);
axTChart1.Axis.Left.SetMinMax(0, 20);
for (int i = 0; i < 3; i++)
{
//将series加载到TeeChart控件上
axTChart1.AddSeries(ESeriesClass.scFastLine);

}
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}

}
---------------------
作者:DurableHumor
来源:CSDN
原文:https://blog.csdn.net/my_clear_mind/article/details/79741020
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/qiu18359243869/p/10533999.html

时间: 2024-10-31 19:06:31

关于TeeChart使用我会持续更新的相关文章

功能使用来源(持续更新)

从开始编写项目到现在,用过好多插件,但是有的时候用过后,时间一长就会忘记,这里我整理一下,以防忘记,我会持续更新的!!! 图表类: Jfreechart 适合java和jsp使用 界面差,不易维护,说白了,显示的就是一张图片: highcharts web使用,js插件,界面绚丽,官网有好多demo(当时没有找到这个,于是用的jfreechart...): echarts 近期找到的,百度制作,叫百度图说,我很看好这个,下次如有需要制作图表的时候,我一定用这个!!!这个也有好多的demo,我看了

还是Robotium娱乐小工具,取名LikeMonkey(持续更新成果,纯属娱乐,请勿吐槽)

这是我入职新公司以来第一个相对来说比较成型的工具,虽然功能是那么的弱智,但是基本上我是抱着认真的态度来看待这个工具的开发 废话不多说,首先阐明一下这个工具的意图: 意图:起因是当时需要测试公司APK的稳定性,开发建议使用Monkey,但是Monkey是有很多弊病的,比如加-p参数即使加了指定包名,也还是会有时跳出被测程序,跑到OS里去执行:还比如测试中经常会有需要模拟按键的操作,比如音量,HOME之类的,这些是我所不需要的,而恰恰公司4个APK中都有的左滑右滑貌似没有支持,所以萌生出了一个自己用

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

android开发开源宝贝——持续更新。。。

2016年11月11日更新 http://www.apkbus.com/forum-417-1.html http://p.codekk.com/detail/Android/hejunlin2013/LivePlayback www.codekk.com https://github.com/Trinea/android-open-project Android 开源项目分类汇总 我们的微信公众号:codekk.二维码如下: 专注于 Android 开源分享.源码解析.框架设计.Android

Python中常用的一些操作总结(持续更新)

写在前面的话 其实也没有什么可以写的,或者说完全没有价值.因为你只要动一动手指就可以在Google上找到我要写的这些东西.只是我还不习惯好久没有碰我的blog,但是我又不想写没有价值的东西.或许有价值,只是在我一年两不编程的情况下,我会忘记那些我以前很熟悉的操作是怎么完成的,或许混到那个地步我的人生就开始悲剧了吧.总之,成长成我想要的样子我还是需要很长的路要走. 这一篇是会持续更新的,至少为了保证它看起来不那么水,也要让它持续更新 python中的进制转换 1.其他进制转换为10进制 所有的进制

做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个button下的tomcat7中的run即可,假设使用的是serves中的run serves,这样的情况貌似不会自己主动编译 2.点击project菜单下的clean选项,在打开的窗体中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后又一次部署,执行 3.删除电脑中tomca

【转】Unity 相关经典博客资源总结(持续更新)

原文:http://blog.csdn.net/prothi/article/details/20123319 就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享. 好的论坛: Unity官方脚本  点评:这个不用说了,最核心的内容,理解整个Unity引擎的方方面面,梳理结构. Unity圣典 点评:适合英文不太好的同学看,阅读速度肯定比英文快. Unity圣典的论坛 点评:论坛嘛,很多问答以及经典文章. Unity wiki 点评:可以说跟Unity官方脚本一样重要的东西

做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomcat7中的run就行,如果使用的是serves中的run serves,这种情况貌似不会自动编译 2.点击project菜单下的clean选项,在打开的窗口中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后重新部署,运行 3.删除电脑中tomcat文件夹,重新解压,然后在

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新 &#362414;

原文: http://blog.gqylpy.com/gqy/438 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我