Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我的错误捕获功能有什么问题?_Vb.net_Function - Fatal编程技术网

Vb.net 我的错误捕获功能有什么问题?

Vb.net 我的错误捕获功能有什么问题?,vb.net,function,Vb.net,Function,我有一个购买衬衫的程序,我正在更改它,以便通过一个函数进行错误捕获,因此我删除了以前的错误捕获,创建了该函数,并进行了尝试。但在某个地方我一定是搞砸了,因为它不能正常工作。我一步一步地跟着我班上的视频指南,但我找不到哪里出错了。我已经想了好几个小时了,但还是一无所获。任何帮助都将不胜感激。发生的情况是,当我单击“计算”或“下一次销售”时,它将始终显示我的错误消息。请输入一个有效数字,我已尝试输入0、1、25、50、51、55和5a。它应该给我一个5a的错误消息,说请输入一个有效的数字,因为它不是

我有一个购买衬衫的程序,我正在更改它,以便通过一个函数进行错误捕获,因此我删除了以前的错误捕获,创建了该函数,并进行了尝试。但在某个地方我一定是搞砸了,因为它不能正常工作。我一步一步地跟着我班上的视频指南,但我找不到哪里出错了。我已经想了好几个小时了,但还是一无所获。任何帮助都将不胜感激。发生的情况是,当我单击“计算”或“下一次销售”时,它将始终显示我的错误消息。请输入一个有效数字,我已尝试输入0、1、25、50、51、55和5a。它应该给我一个5a的错误消息,说请输入一个有效的数字,因为它不是数字。它应该会给我错误信息,请输入0、51和55的1到50之间的数字。我甚至无法让那个错误消息起作用,因为我输入的每个数字都给出了“请输入一个有效的数字”错误消息。我哪里出错了?请帮我找出错误

以下是函数:

    Private Function CheckTextBox(ByVal TextBoxName As TextBox, ByVal Min As Single, ByVal Max As Single, ByVal IntCheck As Boolean) As Boolean

    If Not IsNumeric(TextBoxName) Then
        MessageBox.Show("Please enter a valid number", "Error", MessageBoxButtons.OK)
        TextBoxName.Text = ""
        TextBoxName.Focus()
        Exit Function
    End If

    If Val(TextBoxName.Text) < Min Or Val(TextBoxName.Text) > Max Then
        MessageBox.Show("Please enter a number from " & Min & " to " & Max, "Error", MessageBoxButtons.OK)
        TextBoxName.Text = ""
        TextBoxName.Focus()
        Exit Function
    End If

    If IntCheck Then
        If Val(TextBoxName.Text) <> Int(TextBoxName.Text) Then
            MessageBox.Show("Please enter a whole number", "Error", MessageBoxButtons.OK)
            TextBoxName.Text = ""
            TextBoxName.Focus()
            Exit Function
        End If
    End If

    Return True

End Function
下面是“下一项”按钮的代码:

    Private Sub btnNextItem_Click(Sender As Object, e As EventArgs) Handles btnNextItem.Click
    'Local Variable Declaration Section
    Dim sngSalesTax As Single
    Dim intQuantity As Integer
    Dim sngItemTotal As Single
    'Data Input Section

    If CheckTextBox(txtQuantity, 1, 50, True) = False Then 'Uses the function to error trap exits sub if functions returns as false
        Exit Sub
    End If

    intQuantity = CInt(txtQuantity.Text)

        'Calculation Section
        sngItemTotal = msngItemPrice * intQuantity 'Calculates item total
        msngSubtotal += sngItemTotal     'Calculates the subtotal
        sngSalesTax = msngSubtotal * csngSalesTaxRate    'Calculates Sales Tax based on the sales tax rate constant
        'Output section
        lblShowShippingCost.Text = ""
        lblShowOrderTotal.Text = ""
        lblShowSubTotal.Text = FormatCurrency(msngSubtotal)  'Displays the Sub Total
        lblShowSalesTax.Text = FormatCurrency(sngSalesTax)  'Displays the Sales Tax
End Sub

函数中的第一个If语句应该是If Not IsNumericTextBoxName.Text Then。虽然您在其他语句中包含了.Text,但您仍保留了它。您是否与此问题的提问者属于同一类:?在您的CheckTextBox函数中,您还应将所有出现的Exit函数替换为Return False。
    Private Sub btnNextItem_Click(Sender As Object, e As EventArgs) Handles btnNextItem.Click
    'Local Variable Declaration Section
    Dim sngSalesTax As Single
    Dim intQuantity As Integer
    Dim sngItemTotal As Single
    'Data Input Section

    If CheckTextBox(txtQuantity, 1, 50, True) = False Then 'Uses the function to error trap exits sub if functions returns as false
        Exit Sub
    End If

    intQuantity = CInt(txtQuantity.Text)

        'Calculation Section
        sngItemTotal = msngItemPrice * intQuantity 'Calculates item total
        msngSubtotal += sngItemTotal     'Calculates the subtotal
        sngSalesTax = msngSubtotal * csngSalesTaxRate    'Calculates Sales Tax based on the sales tax rate constant
        'Output section
        lblShowShippingCost.Text = ""
        lblShowOrderTotal.Text = ""
        lblShowSubTotal.Text = FormatCurrency(msngSubtotal)  'Displays the Sub Total
        lblShowSalesTax.Text = FormatCurrency(sngSalesTax)  'Displays the Sales Tax
End Sub