VB网络文本框比较值从低到高并更改颜色

时间:2018-12-26 17:49:44

标签: vb.net

每个字母都有以下文本框(A1-A2-A3至A8)(B1-B2-B3 -... A-8)(C1-C2-C3 ....- A8)无法为所有字母制作代码。 也就是说,要为每个字母计算A1,A2,A3,A4,A5 ... a8文本框,B1和b2,b3,b4 .... b8)的值,依此类推。然后按值(最小到最大)改变文本框的颜色。  我想根据值的大小在最小和最大之间更改颜色,我有这样的代码,但是我不知道为什么它不起作用,而且我不确定代码是否正确编写。我目前正在使用Visual Basic 2008(VB-2008),所以我的项目正在VB 2008中工作。

这样的代码可以帮助您指导其工作方式,因为无论我创建多少个文本框以及它计算出多少个字母,该代码都能完美地工作。因为每个文本框都包含一个从1到7的数字,所以它按列计算每个文本框,并告诉我这些文本框的最终计算值。但是,现在我需要最终的计算值,以将我的颜色从最小文本框更改为最大文本框。

Private Sub txtDrawSum()
    On Error Resume Next
    For y = 1 To 8
        Dim sum = 0
        For x = 1 To 15
            Dim tbName = "txtDraw" & Chr(64 + x) & y
            sum += CInt(TabControl3.TabPages(0).Controls(tbName).Text)
        Next
        TabControl3.TabPages(0).Controls("SumDraw" & (0 + y)).Text = sum.ToString()
    Next
End Sub

这是应该执行我想要的代码,不幸的是,我不知道为什么它不起作用以及原因是什么。 必须根据我的以SumtxtDraw开头的文本框更改此代码。 (A1..A8,B1 .... B8,C1 .... C8-等)

此代码应比较文本框的值,并根据每个文本框的最小还是最大,为其指定特定的颜色。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     FillColorList()
 End Sub

Private Sub ColorTextBoxes()
    FillTextBoxList(16, 23)
    Dim SortedList As List(Of TextBox) = SortList()
    Dim index As Integer
    For Each txt As TextBox In SortedList
         txt.BackColor = lstColor(index)
         index += 1
    Next
End Sub

Private Sub FillColorList()
    lstColor.Add(Color.Red) 'for lowest number
    lstColor.Add(Color.BlanchedAlmond)
    lstColor.Add(Color.PaleGreen)
    lstColor.Add(Color.Chartreuse)
    lstColor.Add(Color.CadetBlue)
    lstColor.Add(Color.Orange)
    lstColor.Add(Color.DarkMagenta)
    lstColor.Add(Color.Violet) 'for highest number
End Sub

Private Sub FillTextBoxList(StartNumber As Integer, EndNumber As Integer)
    lstTextBox.Clear()
    For suffix = StartNumber To EndNumber
        lstTextBox.Add(DirectCast(Controls("TextBox" & suffix.ToString), TextBox))
    Next
End Sub

Private Function SortList() As List(Of TextBox)
    Dim orderedList = From txt In lstTextBox Order By CInt(txt.Text) Descending Select txt '$"{scorer.Score} - {scorer.Name}"
    Dim SortedList As List(Of TextBox) = orderedList.ToList
    Return SortedList
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ColorTextBoxes()
End Sub

0 个答案:

没有答案