【发布时间】:2017-02-06 00:01:40
【问题描述】:
我正在尝试使用 Winform 和 Devexpress 库构建遥测软件。具体来说,我正在研究折线图控件,我想做的是配置图表,以便它能够实时显示数据变化。
图表是通过读取一些以每秒 10 个值的速率发送信息的外部传感器而生成的。
这是我初始化图表的代码:
series1 = new Series("test test", ViewType.Line);
chartControl1.Series.Add(series1);
series1.ArgumentScaleType = ScaleType.Numerical;
((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Dash;
((XYDiagram)chartControl1.Diagram).EnableAxisXZooming = true;
chartControl1.Legend.Visibility = DefaultBoolean.False;
chartControl1.Titles.Add(new ChartTitle());
chartControl1.Titles[0].Text = "A Line Chart";
chartControl1.Dock = DockStyle.Fill;
这是添加一个新点并删除第一个可用点的那个,这样我图表中的点数总是相同的(在达到最小点数之后),它会不断更新自身,显示最后一个点X 秒的值并丢弃旧值。
series1.Points.RemoveRange(0, 1);
series1.Points.Add(new SeriesPoint(time, value));
...
AxisXRange.SetMinMaxValues(newFirstTime, time);
AxisRange 如下
Range AxisXRange
{
get
{
SwiftPlotDiagram diagram = chartControl1.Diagram as SwiftPlotDiagram;
if (diagram != null)
return diagram.AxisX.VisualRange;
return null;
}
}
**问题**是这段代码暂时有效。几秒钟后,图表停止工作,并在其上显示一个大红叉。
我的配置有什么遗漏吗? 你知道有什么更好的方法来完成我的任务吗?
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
在 WinForms 中,如果在绘制控件时引发了未经处理的异常,则控件会显示一个红色十字。在 Visual Studio 中,您可以configure options 以便调试器将始终停止在 unhands 异常处。这将帮助您确定问题的原因。
-
感谢提示
-
@Uranus 感谢您的提示,我发现了一个问题,但现在我在想:这是实现图表的正确方法吗?你有没有尝试过这样的事情?我认为它在 20 秒的数据后存在一些性能问题。感谢您的帮助
标签: winforms charts devexpress