2014-02-19 46 views
0

我的应用程序与实时图表控件收到日期和我的控制显示此之后动态更新:图表控件停止几分钟

这是我的控制:

MyObject obj... 

Series series = new Series(); 
series.Color = Color.Blue; 
series.ChartType = SeriesChartType.Spline; 
series.BorderWidth = 2; 
chart1.Series.Add(series); 
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.White; 
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.White; 
chart1.ChartAreas[0].AxisX.IsStartedFromZero = true; 
chart1.ChartAreas[0].AxisX.IntervalOffsetType = DateTimeIntervalType.Number 

;

计时器滴答:

private void chartTimer_Tick(object sender, EventArgs e) 
{ 
     series.Points.Add(wf.BitsPerSecond * 0.000001); 
     chart1.ResetAutoValues(); 
} 

我的问题是,几分钟后停止图形更新和停止前进,我不知道为什么。

+0

在调试器中,你可以看到点被添加到该系列?或者计时器停止滴答滴答?它的更新是否正确,直到你的点达到最大轴,然后它不能更新?您可能需要在'chartTimer_Tick'方法的末尾添加对'chart1.ResetAutoValues()'的调用,这会告诉图表重新计算两个轴上的最小/最大值,并考虑其他点。 – mmathis

+0

首先在chartTimer_i的结尾处添加了对chart1.ResetAutoValues()的调用,现在我再次测试它,并且我会在几分钟内更新......,计时器仍在滴答滴答,您的意思是什么,直到您的点达到轴最大值? – user3271698

+0

例如,如果您的x轴最大值为100,并且您的计时器将x值增加1的点添加到....对x值小于100的所有点都有效,并在开始添加点时停止工作x值大于100? – mmathis

回答

0

过了一段时间,您将有太多的DataPoints显示。

所以最好删除旧的从开始:

private void chartTimer_Tick(object sender, EventArgs e) 
{ 
    series.Points.Add(wf.BitsPerSecond * 0.000001); 
    if (series.Points.Count > someLimit) series.Points.RemoveAt(0); 
    chart1.ResetAutoValues(); 
}