我有VB程序,它连接了2类,收入和费用的小数。对象输入事件“字符串到十进制无效”
出于某种原因,incomeTextBox.Enter和expensesTextBox.Enter有怪异的行为,他说:
当我请使用TAB键或鼠标选择其他的InputBoxPlease enter numeric value for expenses
即使输入整数之后(这则IsNumeric = TRUE) 。
我也得到错误:
An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
Additional information: Conversion from string "" to type 'Decimal' is not valid.
此外,这是VB,不VB.Net,但没有VB标签?
Option Explicit On
Public Class MainForm
Public decexpenses, decincome As Decimal
Public dectotalexpenses As Decimal = 0
Public dectotalincome As Decimal = 0
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
MsgBox("Use Enter key to enter values.")
End Sub
Private Sub expensesTextBox_Enter(sender As Object, e As EventArgs) Handles expensesTextBox.Enter
Dim expenses = expensesTextBox.Text
If IsNumeric(expenses) = False Then
MsgBox("Please enter numeric value for expenses.")
End If
expensesTextBox.Text = ""
decexpenses = CDec(expenses)
dectotalexpenses = decexpenses + dectotalexpenses
End Sub
Private Sub incomeTextBox_Enter(sender As Object, e As EventArgs) Handles incomeTextBox.Enter
Dim income = incomeTextBox.Text
If IsNumeric(income) = False Then
MsgBox("Please enter numeric value for income.")
ElseIf IsNumeric(income) = True Then
decincome = CDec(income)
dectotalincome = decincome + dectotalexpenses
End If
End Sub
End Class
我们能看到代码吗? – codeMonger123
对不起,我忘记了(; –
如果用户第一次“进入”TextBox,则会引发Enter事件,可能文本在这个时候是空的,这会引发您的异常。使用'Decimal.TryParse' –