Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# .net如何删除最旧的XY数据点,然后将新的XY数据点添加到图表中_C#_.net_Charts_Series - Fatal编程技术网

C# .net如何删除最旧的XY数据点,然后将新的XY数据点添加到图表中

C# .net如何删除最旧的XY数据点,然后将新的XY数据点添加到图表中,c#,.net,charts,series,C#,.net,Charts,Series,我正在使用.Points.RemoveAt(0)删除最旧的和 .AddXY以添加最新的 但这张图表并不正确。当我删除每个最旧的并添加每个最新的(x轴是时间)时,我没有看到图表像我预期的那样向左滚动 噢,我用VBA回答,而不是C。也许你可以在C#中使用同样的技巧,方法是读取值数组,修改它,然后将其写回图表。 我想你是想做这样的事情: 下面是我用来做这件事的代码: Private Const MaxPoints As Long = 100 Private Sub CommandButton1_C

我正在使用.Points.RemoveAt(0)删除最旧的和 .AddXY以添加最新的

但这张图表并不正确。当我删除每个最旧的并添加每个最新的(x轴是时间)时,我没有看到图表像我预期的那样向左滚动


噢,我用VBA回答,而不是
C
。也许你可以在
C#
中使用同样的技巧,方法是读取值数组,修改它,然后将其写回图表。

我想你是想做这样的事情:

下面是我用来做这件事的代码:

Private Const MaxPoints As Long = 100

Private Sub CommandButton1_Click()
    Dim i As Long, PI As Double
    PI = 4 * Atn(1)
    For i = 1 To 720 / 5
        AddValueToChart 50# + 35# * Sin(5 * i * PI / 180)
        DoEvents
    Next i
End Sub

Public Sub AddValueToChart(ByVal x As Double)
    Dim ch As Chart, list() As Variant
    Set ch = Me.ChartObjects("Chart 1").Chart

    Dim serlist As SeriesCollection
    Set serlist = ch.SeriesCollection()
    ' If chart is empty then add a line with 100 points
    If serlist.Count = 0 Then
        serlist.NewSeries
        ReDim list(1 To MaxPoints)
        ch.SeriesCollection(1).Values = list
    End If

    Dim ser As Series
    Set ser = ch.SeriesCollection(1)
    ' Get an array of values
    list = ser.Values
    Dim i As Long
    For i = MaxPoints To 2 Step -1
        ' Shift points
        list(i) = list(i - 1)
    Next i
    ' Add a new point to the begining of the chart.
    list(1) = x
    ' Assign the modified list as values of the series.
    ser.Values = list
End Sub

不需要这样做,您可以移动系列
.points()
数组中的点。请看如何操作。哦,我用VBA回答,而不是
C