如何在vb.net中绘制连续线图

时间:2015-08-17 09:50:44

标签: vb.net

我是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'的图表元素”错误。请指导如何持续更新值。

1 个答案:

答案 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