我的项目分配需要使用If语句进行输入验证。此外,如果用户将交易限额字段留空,则应使用默认的$ 0。我的教科书并没有帮助我理解它们是如何工作的,它只会显示一小部分代码,并没有显示任何实际用途。我的整个项目按预期工作,但是当我尝试输入非数字数据,或者将字段留空时程序崩溃。它确实显示了我设置的消息,但它没有给用户提供修复错误的机会。
'Having a problem here...
AccessoriesTextBox.Text = AccessoriesAndFinish.ToString()
If CarSalesTextBox.Text <> " " Then
Try
CarSalesPrice = Decimal.Parse(CarSalesTextBox.Text)
Catch CarSalesException As FormatException
MessageBox.Show("Nonnumeric data entered for Car Sales Price.", "Data Entry Error",
MessageBoxButtons.OK)
CarSalesTextBox.Focus()
End Try
ElseIf CarSalesTextBox.Text <> "" Then
MessageBox.Show("Enter the Car Sales Price.", "Data Entry Error",
MessageBoxButtons.OK)
CarSalesTextBox.Focus()
End If
'Also having a problem here...
If TradeTextBox.Text <> "" Then
TradeAllowance = 0D
If TradeTextBox.Text <> " " Then
TradeAllowance = 0D
End If
End If
'Convert Trade Allowance to Decimal
TradeAllowance = Decimal.Parse(TradeTextBox.Text)
答案 0 :(得分:0)
为避免用户将非数字数据放入文本框,您可以避免使用文本框;) NumericUpDown用于输入数字。
但是,如果您需要或想要使用文本框,则可以使用TryParse
而不是捕获异常。
Dim value As Decimal ' to hold the numeric value we need later
If tb.Text = String.Empty Then
' either throw error and exit method or use default value
ElseIf Not Decimal.TryParse(tb.Text, value) Then
' not a decimal, inform user and exit sub
End If
' value contains something meaningfull at this point