实时图表在从多个文本框的VB Visual Studio接收数据时进行更新

我正在处理的项目中有一个图表,我需要在输入每个文本框时更新其值,以便用户可以跟踪线性度。

根据我的基本知识,唯一能想到的方法是在每个输入的文本框值处计算图表,但这对12个文本框来说是很疯狂的。

目前,我可以通过按钮setState使用它(请参见下面的代码)。但是,我希望它随着输入每个值而更新-对此的任何指导将不胜感激。

Click
eileencxy227 回答:实时图表在从多个文本框的VB Visual Studio接收数据时进行更新

您可以为每个文本框订阅事件“ TextChanged”。这是一个带有四个textBoxes(A,B,C,D)的演示,您可以参考。在事件“ TextChanged”中,可以使用“ switch”语句来判断已更改的textBox。然后重新绑定图表的数据并进行更新。

Public Class Form1
    Private Price As New List(Of Integer)
    Private Brand As New List(Of String)

    Private Sub Form1_Load(Sender As Form1,e As EventArgs) Handles MyBase.Load
        Me.Brand = New List(Of String) From {"A","B","C","D"}
        Me.Price = New List(Of Integer) From {1,2,3,4}

        ' Set initial data
        Chart1.Titles.Add("Line Chart")
        Chart1.ChartAreas(0).Axes(0).MajorGrid.Enabled = False
        Chart1.ChartAreas(0).Axes(1).MajorGrid.Enabled = False
        Chart1.Series.Clear()
        Chart1.Series.Add("Price")
        Chart1.Series("Price").Points.DataBindXY(Me.Brand,Me.Price)
        Chart1.Series(0).ChartType = SeriesChartType.Column
    End Sub

    ' subscribe to event "TextChanged"
    Private Sub TextBox_TextChanged(Sender As TextBox,e As EventArgs) Handles TextBoxA.TextChanged,TextBoxB.TextChanged,TextBoxC.TextChanged,TextBoxD.TextChanged
        Select Case Sender.Name
            Case TextBoxA.Name : Me.Price(0) = Convert.ToInt32(TextBoxA.Text)
            Case TextBoxB.Name : Me.Price(1) = Convert.ToInt32(TextBoxB.Text)
            Case TextBoxC.Name : Me.Price(2) = Convert.ToInt32(TextBoxC.Text)
            Case TextBoxD.Name : Me.Price(3) = Convert.ToInt32(TextBoxD.Text)
        End Select

        ' Rebind the data
        Chart1.Series("Price").Points.DataBindXY(Me.Brand,Me.Price)

        ' Update the chart
        Chart1.Update()
    End Sub
End Class
本文链接:https://www.f2er.com/3054603.html

大家都在问