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