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 に 1 つの Y 値を持つポイントが 1 つしかないと言っていましたが、それでも 2 つの 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 に答える