PatrickGamboa - 1 year ago 93
Vb.net Question

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

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

Answer Source

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
``````
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download