Его взорвало ваш бросок «CInt(*value*)
», так что вы можете исправить код парой способов. Вы можете переместить свою попытку над приведениями, например ...
Try
Dim intvalue As Integer = CInt(TxtInputClassA.Text)
Dim intvalue2 As Integer = CInt(TxtInputClassB.Text)
Dim intvalue3 As Integer = CInt(TxtinputClassC.Text)
Dim total As Double
LblStatus.Text = String.Empty
Вы можете выполнить проверку данных на своих входах и выйти, если они не все числа c (поместите это над кодом Dim intvalue )
For Each value As String In {TxtInputClassA.Text, TxtInputClassA.Text, TxtInputClassA.Text}
If Not IsNumeric(TxtInputClassA.Text) Then
LblStatus.Text = "Please Enter a Number"
Exit Sub
End If
Next
Вместо преобразования в тип int используйте метод tryparse для Int32 ...
Dim intvalue As Integer
If Not Int32.TryParse(TxtInputClassA.Text, intvalue) Then
Exit Sub
End If
Или вы можете перехватывать нажатия клавиш в каждом текстовом поле, чтобы можно было только числа
Private Sub TxtInputClassA_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TxtInputClassA.KeyPress
If Not Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
End Sub
Вы можете сделать эту процедуру универсальной и добавить обработчик событий для всех трех текстовых полей, например ...
Private Sub EnforceOnlyNumericKeyPresses(sender As Object, e As KeyPressEventArgs) Handles TxtInputClassA.KeyPress, TxtInputClassB.KeyPress, TxtInputClassC.KeyPress
If Not Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
End Sub
Выберите свой любимый или сделайте все, много выбора.