0

在我的WinForms C#程序中,在使用轨迹栏增加和减少 X 轴值时,我需要更新已经在图表上绘制的现有 Y 轴值,System.Windows.Forms.DataVisualization.Charting.Chart但由于某些原因,对于大多数 X 点,图表仍然显示旧的和新的Y 值。最初我认为以下应该正确执行:

    private void UpdatePoint(int aIndex, float aX, float aY)
    {
        DataPoint found = null;
        if (_chart.Series[aIndex].Points.Count > 0 && 
            (found = _chart.Series[aIndex].Points.FindByValue(aX, "X")) != null)
        {
            if (found.YValues[0] != aY)
                found.SetValueXY(aX, aY);
        }
        else
        {
            _chart.Series[aIndex].Points.AddXY(aX, aY);
        }
    }

首先,我认为我正在以不正确的方式进行更新并尝试删除该点并添加一个具有新 Y 值的新点,但是尽管调试器说每个 XI 只有一个具有一个 Y 值的点仍然看到两个 Y 值和这意味着图表没有正确刷新。尝试使图表无效或刷新没有帮助。如何实现正确的积分更新。我错过了什么吗?

谢谢!

4

2 回答 2

1
_chart.Series[yourSeriesIndex].Points.Clear();

当我遇到问题时;这个部分示例应该可以帮助您清除您想要的系列点的旧值。

于 2016-01-21T09:32:02.060 回答
0

我能为您提供的最好的方法是删除它并切换到 WPF。Winforms 实在是太让人头疼了

于 2016-01-21T09:39:58.457 回答