Option Strict On
Public Class MortgageCalculatorFRM
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles calculatePaymentBTN.Click
Dim amount As Integer
Dim interestRate As Double
If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then
MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
amount = CInt(amountTBX.Text)
interestRate = CDbl(interestTBX.Text)<code>
我正在尝试检查amountTBX或interestTBX是否为空,如果为空,则会出现消息框。但是,出现MessageBox时,一旦我单击“确定”,就会出现此错误: System.InvalidCastException:'从字符串“”转换为'Integer'类型的转换无效。'我需要帮助,谢谢提前给你!
答案 0 :(得分:0)
如果验证失败,则您不想继续进行任何操作。在MessageBox后面添加return语句。
If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then
MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
答案 1 :(得分:0)
此代码将正确检查并向用户显示消息,但是在显示该消息后,该代码将继续运行,因为您没有其他说明。因此,仍然尝试进行转换。您需要在以下时间退出该子项目:
If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then
MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
您也可以使用Else
,但是通常更容易退出检查,而不增加Else
的嵌套。