How to validate number range array in textbox in visual basic?

你离开我真会死。 提交于 2019-12-25 10:00:35

问题


So basically in a form, you have 3 textboxes and each of them you can input a number, then you have a button that check if each of these textboxes are in a range of numbers specified. It's very much like a lock combo, but I need help checking values, for example;

the only thing i can figure out is

Dim intOne As Integer
    Dim intTwo As Integer
    Dim intThree As Integer
    Dim blnInputOk As Boolean = True

    If Integer.TryParse(lblOne.Text, intOne) = False Then
        MessageBox.Show("Value must be an integer")
        blnInputOk = False
    End If

    If Integer.TryParse(lblTwo.Text, intTwo) = False Then
        MessageBox.Show("Value must be an integer")
        blnInputOk = False
    End If

    If Integer.TryParse(lblThree.Text, intThree) = False Then
        MessageBox.Show("Value must be an integer")
        blnInputOk = False
    End If

    If intOne >= 6 And intOne <= 8 Then
        If intTwo >= 2 And intOne <= 9 Then
            If intThree >= 0 And intThree <= 8 Then
                MessageBox.Show("Good code!")
            Else
                MessageBox.Show("Wrong, number must be between range 0 to 8")
            End If
        Else
            MessageBox.Show("Wrong, number must be between range 2 to 9")
        End If
    Else
        MessageBox.Show("Wrong, number must be between range 6 to 8")
    End If

So my question is how can you make this code simpler by adding an array for number range for each textbox? I also know there is a possibility of adding a loop, but i'm not sure how to structure it, can anyone help? thanks


回答1:


There are many ways, all depends on the number of values you are going to compare, the simplest is by adding a comparison function.

Private Function IsInRange(x As Integer, a As Integer, b As Integer) As Boolean
    Dim r As Boolean
    r = (x >= a And x <= b)
    If r Then
        MessageBox.Show("Good code!")
    Else
        MessageBox.Show(String.Format("Wrong, number {0} must be between range {1} to {2}", x, a, b))
    End If
    Return r
End Function

Then according to the code shown in your question, you can do this:

If IsInRange(intOne, 6, 8) Then
    If IsInRange(intTwo, 2, 9) Then
        IsInRange(intThree, 0, 8)
    End If
End If



回答2:


.NET has input validation functionality on standard input controls. Here's a decent place to start.



来源:https://stackoverflow.com/questions/20134383/how-to-validate-number-range-array-in-textbox-in-visual-basic

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!