示例目的:使用时间器添加曲线图的点,以达到实时描绘曲线图的效果。X轴显示时分,Y轴显示0-20的随机数
1. 必须安装DevExpress控件,没有安装的朋友可以使用下面的云盘链接下载安装
链接:https://pan.baidu.com/s/1nXPoRsIr_RR95GHtuN4LJg
提取码:yh98
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. 启用计时器,查看效果
有其他需求可以查看控件属性进行修改,我在这里就不详述了。