我有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' –