我是VB.NET的新手。我正在尝试使用图形UI控件基于特定时间间隔绘制连续线图。我能够第一次绘制图形并在第二次得到未处理的异常。请参阅下面的代码,
Dim s As New Series
s.Name = "aline"
'Change to a line graph.
s.ChartType = SeriesChartType.Line
For index As Integer = 1 To 10
s.Points.AddXY("1990", 27)
s.Points.AddXY("1991", 15)
s.Points.AddXY("1992", index)
Next
Chart1.Series.Add(s)
Threading.Thread.Sleep(1000)
s.Points.AddXY("1993", 27)
s.Points.AddXY("1994", 15)
s.Points.AddXY("1995", 10)
Chart1.Series.Add(s)'Here im getting exception
但是第二次如果我尝试使用Chart1.Series.Add(s)
更新值,我会得到“'SeriesCollection'中存在名称'aline'的图表元素”错误。请指导如何持续更新值。
答案 0 :(得分:1)
您无需执行任何操作即可更新图表 - 只需删除第二个Chart1.Series.Add(s)
。
在某些情况下,您可能需要强制更新,在这种情况下,您可以使用Chart.DataBind method。
从DataBind方法文档的备注部分:
如果将数据源设置为图表而不需要其他数据操作,则不必显式调用DataBind方法。在这些情况下,图表本身将在呈现之前将数据绑定到数据源。
如果在表单中添加按钮以添加某些值,则更容易看到此操作:单击按钮时,您会看到图表调整其x轴并添加新点。
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form1
Dim s As New Series
Sub DoChart()
s.Name = "aline"
'Change to a line graph.
s.ChartType = SeriesChartType.Line
For index As Integer = 1 To 10
s.Points.AddXY("1990", 27)
s.Points.AddXY("1991", 15)
s.Points.AddXY("1992", index)
Next
Chart1.Series.Add(s)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
s.Points.AddXY("1993", 27)
s.Points.AddXY("1994", 15)
s.Points.AddXY("1995", 10)
'Chart1.DataBind()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DoChart()
End Sub
End Class