PatrickGamboa - 4 months ago 24

Vb.net Question

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

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
```