发布时间:2025-12-09 12:05:55 浏览次数:1
示例目的:使用时间器添加曲线图的点,以达到实时描绘曲线图的效果。X轴显示时分,Y轴显示0-20的随机数
1. 必须安装DevExpress控件,没有安装的朋友可以使用下面的云盘链接下载安装
链接:https://pan.baidu.com/s/1iRg8qLtBHjDV6IlRq6-mFg
提取码:xyl2
2. 新建Windows窗体应用程序,直接在工具箱搜索ChartControl并使用改组件
3. 添加曲线图,并设置其属性
当拖拉该组件到窗体设计页面时,会弹出【Chart Designer】,可在此处添加曲线图,并设置其属性
3.1. Series Collection:在此处添加曲线图,实例添加的是Line Series下的Line曲线
GENERAL-LabelsVisibility:显示点对应Y轴的数值
VIEW:MARKER OPTIONS:线上的实心点设置
VIEW:APPEARANCE:线的设置
3.2 因为时模拟的数据,所以我们要设置X轴的参数类型为自定义
4. 开始实现功能
1 using DevExpress.XtraCharts; 2 using System; 3 using System.Windows.Forms; 4 5 namespace ChartControl 6 { 7 public partial class Form1 : Form 8 { 9 private const int _pointsCount = 15; //固定保留15个点10 private int _hour = 0;11 private int _minute = 0;12 private SeriesPointCollection _points;13 14 public Form1()15 {16 InitializeComponent();17 _points = chartControl1.Series[0].Points;18 }19 20 private void timer1_Tick(object sender, EventArgs e)21 {22 if (_minute >= 60)23 {24 _hour += 1;25 _minute = 0;26 }27 if (_hour == 24)28 {29 _hour = 0;30 }31 if (_points.Count >= _pointsCount)32 {33 _points.RemoveAt(0);34 }35 var argument = $"{_hour.ToString().PadLeft(2, '0')}:{_minute.ToString().PadLeft(2, '0')}"; // X轴数据36 var value = Math.Round(new Random().NextDouble() * 20, 2); // Y轴数据37 var seriesPoint = new SeriesPoint(argument, value);38 _points.Add(seriesPoint);39 _minute += 1;40 }41 }42 }5. 启用计时器,查看效果
有其他需求可以查看控件属性进行修改,我在这里就不详述了。
实例源码链接:https://github.com/Jcanc/ChartControl