關於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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM