Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图表控件停止在几分钟后动态更新_C#_Charts - Fatal编程技术网

C# 图表控件停止在几分钟后动态更新

C# 图表控件停止在几分钟后动态更新,c#,charts,C#,Charts,我有一个带有实时图表控件的应用程序,它接收日期并在我的控件上显示: 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 =

我有一个带有实时图表控件的应用程序,它接收日期并在我的控件上显示:

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
这是我的控制:

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();
}

我的问题是,几分钟后,图形停止更新并停止前进,我不知道原因。

过一会儿,您将有太多的
数据点要显示

因此,最好从一开始就删除旧的:

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();
}

在调试器中,可以看到添加到系列中的点吗?还是计时器停止滴答作响?在点达到轴的最大值之前,它是否会正常更新,之后不会正常更新?您可能需要在
chartTimer\u Tick
方法的末尾添加对
chart1.ResetAutoValues()的调用,这将告诉图表重新计算两个轴上的最小/最大值,并考虑其他点。首先,在chartTimer\u的末尾,我添加了对chart1.ResetAutoValues()的调用现在我再次测试它,几分钟后我将更新…,计时器仍在滴答作响,你的点达到轴最大值之前是什么意思?例如,如果你的x轴最大值为100,并且你的计时器添加的点的x值增加了1…它是否适用于所有x值小于100的点,当它开始添加x值大于100的点时停止工作?需要添加到我的图形中的值也在标签内,所以我可以看到这个值很好,再看看这个链接,这是几分钟后的奇怪行为:顺便说一句,我没有配置任何x轴最大值,默认值是多少?