I wouldn't nest the conditions, and I wouldn't but the error code in the
Else
condition: I'd reverse the conditions and report the error as the
If
part.
Dim dblLengthOfStay As Double
If Not Double.TryParse(txtLengthOfStay.Text, dblLengthOfStay) OrElse dblLengthOfStay < 0.0 Then
MessageBox.Show("The length of stay must be a positive real number.", "Invalid Input")
Return
End If
And repeat the blocks until all values are checked.