为什么此代码显示输出,即使它不符合标准?

时间:2017-01-17 23:52:31

标签: vb.net visual-studio-2012

代码应显示符合条件的所有数字。它不完整,但我无法弄清楚为什么它在列表框中显示大于10的数字。例如,我将在文本框中键入2,MessageBox将显示该数字必须大于3,并且它不会在列表框中显示该数字。如果我输入一个大于10的数字,它将显示MessageBox,说明该数字必须大于10,但它会在列表框中显示。我不知道为什么。

if ((nodeName === "input" && event.target.type === "text") || 
     nodeName === "textarea") {
     doPrevent = event.target.readOnly;
}

1 个答案:

答案 0 :(得分:0)

您正在添加数字,因为如果数字大于10则没有Return False。因此返回True。要解决您的问题,请按以下步骤更新您的代码。

ElseIf CInt(number) > 10 Then
   MessageBox.Show("Number must be less than 10")
   txtNumber.Focus()
   Return False     ''please add this statement
ElseIf CInt(number) < 3 Then

您可以重写以下功能。

Function DataOk() As Boolean
    Dim number As Integer
    Dim errMssg As String = ""

    If txtNumber.Text.Trim = "" Then
        errMssg = "Must not be blank"
    ElseIf Not Integer.TryParse(txtNumber.Text.Trim, number) Then
        errMssg = "Provide a valid number"
    ElseIf number > 10 Then
        errMssg = "Number must be less than 10"
    ElseIf number < 3 Then
        errMssg = "Number must be greater than 3"
    End If

    If errMssg = "" Then
        Return True
    Else
        MessageBox.Show(errMssg)
        Me.txtNumber.Focus()
        Return False
    End If

End Function