TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)

关于TeeChart使用我会持续更新
这篇文章中我是在Winform窗体使用TeeChart2011控件,通过定时器实现了实时绘制曲线图(三个序列)。
先上一下效果图:
TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第1张图片

1.TeeChart2011.ocx的注册

TeeChart2011.ocx下载地址
下载好TeeChart2011.ocx后,32位系统将其放在C:\WINDOWS\System32目录下,64位系统将其放在C:\WINDOWS\SysWOW64,在该目录下以管理员身份运行命令提示符(可以再该目录下找到cmd.exe,以管理员身份运行即可),通过regsvr32命令注册该控件,我的64位系统,图示如下:
TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第2张图片
注册成功会弹出以下提示:
TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第3张图片
如果想要长期使用的话,注册前请将系统时间调至2000/1/1,注册后调回即可。
如果注销该控件的话,可以通过regsvr32 -u指令。

2.TeeChart控件的添加

(1)新建一个WinForm窗体程序,左侧工具栏新建一个选项卡,直接将System32或SysWOW64目录下的TeeChart2011.ocx拖拽到创建的选项卡中即可。
TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第4张图片
TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第5张图片
(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);
        }
    }

TeeChart学习笔记1:TeeChart控件的注册与基本使用(添加曲线序列、添加数据点)_第6张图片

4.动态绘图

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

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

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

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

        /// 
        /// 定时器触发绘图事件
        /// 
        /// 
        /// 
        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事件;
         }

    }

你可能感兴趣的:(TeeChart)