Код должен отображать все числа, соответствующие критериям. Он не является полным, но я не могу понять, почему он отображает числа, которые больше 10 в списке. Например, я наберу 2 в текстовое поле, и MessageBox покажет, что число должно быть больше 3, и оно не отображает номер в списке. Если я наберу число больше 10, оно отобразит MessageBox, в котором говорится, что число должно быть больше 10, но оно отобразится в списке. Я не знаю почему.Почему этот код выводит вывод, даже если он не соответствует критериям?
Private Sub btnProcess_Click(sender As Object, e As EventArgs) Handles btnProcess.Click
Dim input As String = txtNumber.Text
If DataOk() Then
lstOutput.Items.Clear()
lstOutput.Items.Add(input)
End If
End Sub
Function DataOk() As Boolean
Dim number As String = txtNumber.Text
If number = "" Then
MessageBox.Show("Must not be blank")
txtNumber.Focus()
ElseIf CInt(number) > 10 Then
MessageBox.Show("Number must be less than 10")
txtNumber.Focus()
ElseIf CInt(number) < 3 Then
MessageBox.Show("Number must be greater than 3")
txtNumber.Focus()
Return False
End If
Return True
End Function
Вы отлаживали свой код? – OneFineDay
Добавьте 'Return False' в свои первые 2 условия. Вы должны использовать 'Integer.TryParse' вместо вызова' CInt() '. – Comintern
Две минуты в отладчике позволили бы вам понять это сами. Это, вероятно, меньше времени, чем потребовалось вам, чтобы написать свой пост, и примерно в два раза больше, чем было, когда я набираю этот комментарий. Вы действительно должны научиться его использовать. Это будет самый важный инструмент в вашем инструменте; вы должны выяснить, как начать использовать его раньше, чем позже. –