我正在处理的项目中有一个图表,我需要在输入每个文本框时更新其值,以便用户可以跟踪线性度。
根据我的基本知识,唯一能想到的方法是在每个输入的文本框值处计算图表,但这对12个文本框来说是很疯狂的。
目前,我可以通过按钮setState
使用它(请参见下面的代码)。但是,我希望它随着输入每个值而更新-对此的任何指导将不胜感激。
Click
我正在处理的项目中有一个图表,我需要在输入每个文本框时更新其值,以便用户可以跟踪线性度。
根据我的基本知识,唯一能想到的方法是在每个输入的文本框值处计算图表,但这对12个文本框来说是很疯狂的。
目前,我可以通过按钮setState
使用它(请参见下面的代码)。但是,我希望它随着输入每个值而更新-对此的任何指导将不胜感激。
Click
您可以为每个文本框订阅事件“ 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