MSDN图表实时更改点值?

我想使用MSDN图表来表示我从telnet应用程序获取的实时数据。 出于测试目的,我添加了一个按钮来手动更改图表。 我手动制作了图表,它在X轴上有0到5个点,X上的值不同。该系列由它的默认名称“Series1”命名。

我尝试了以下方法:

chart1.Series [ “系列1”] Points.ElementAt(0).SetValueY(40); //什么都没发生

chart1.Series [“Series1”]。Points.ElementAt(1).SetValueXY(1,20); //什么都没发生

。chart1.Series [ “系列1”]点[0] .SetValueY(40); //什么都没发生

chart1.Series [“Series1”]。Points.ElementAt(1).YValues.SetValue(10,0); //什么都没发生

chart1.Series [ “系列1”] Points.Clear(); //删除它应该的所有点。

那么如何在运行时更改数据点条目?

-EDIT-如果我使用chart1.Series["Series1"].Points.ElementAt(0).SetValueY(40);修改一个点chart1.Series["Series1"].Points.ElementAt(0).SetValueY(40); 并在此之后使用chart1.Series["Series1"].Points.AddXY(1, 40);添加一个点chart1.Series["Series1"].Points.AddXY(1, 40); 修改后的点会捕捉到它修改过的地方。 结论是修改确实会改变点Y值,但图形不会刷新。 AddXY()函数似乎是autorefresh。 我似乎找不到手动调用Refresh()的方法。

更改值后调用chart1.Refresh() ; 它将强制重绘图表,获取新值。

我刚刚发现SetValueY()不会更新Y轴的最大间隔。 因此,如果当前最大值为0,则不会显示任何高于0的值。

我这样做:

  public static void Refresh(this Chart chart) // update changed data { chart.Series[0].Points.AddXY(1, 1); chart.Update(); chart.Series[0].Points.RemoveAt(chart.Series[0].Points.Count-1); } 

chart1.Refresh();

DataTable dtChartDataSource =您身边的输入。

 foreach (DataColumn dc in dtChartDataSource.Columns) { //a series to the chart if (chart.Series.FindByName(dc.ColumnName) == null) { series = dc.ColumnName; chart.Series.Add(series); chart.Series[series].ChartType = SeriesChartType.Column; foreach (DataRow dr in dtChartDataSource.Rows) { double dataPoint = 0; double.TryParse(dr[dc.ColumnName].ToString(), out dataPoint); Yourchart.Series[seriesName].Points.AddXY("customStringsOnAxis", dataPoints); } } } 

它会将x轴数据和Y轴值添加到柱形图中。

希望它的帮助