Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: System.InvalidCastException Добавлено: 01.12.07 20:08  

Автор вопроса:  Annie
у меня есть код

Private Sub rb_W_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rb_W.CheckedChanged
Dim opt As Integer, d As Integer
opt = Int(Me.TXT_r.Text) - 110
If Me.TXT_v.Text = opt Then
Me.lbl_res.Text = ("Excellent")
End If
If Me.TXT_v.Text < opt Then
d = opt - Me.TXT_v.Text
Me.lbl_res.Text = ("Not at all")
Me.TXT_kg.Text = (d)
Else
d = Me.TXT_v.Text - opt

Me.lbl_res.Text = ("You need in")
Me.TXT_kg.Text = (d)
End If
End Sub

все работает,но когда очищаю форму, vb ругается,т.е. в

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.TXT_v.Text = " "
        Me.TXT_r.Text = " "
        Me.rb_M.Checked = False
        Me.rb_W.Checked = False
  End Sub

спотыкается здесь Me.rb_W.Checked = False
(а rb_W(radiobutton) на форме в состоянии true)

Необработанное исключение типа “System.InvalidCastException” произошло в Microsoft.visualbasic.dll
Приведение строки “ ” к типу Double является недопустимым.
и VB обращается к
opt = Int(Me.TXT_r.Text) - 110
Какая ошибка!?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #1 Добавлено: 01.12.07 23:05
Попробуй Integer.TryParse

Ответить

Номер ответа: 2
Автор ответа:
 Annie



Вопросов: 19
Ответов: 40
 Профиль | | #2 Добавлено: 02.12.07 19:09
что такое TryParse? Он не является членом Integer.

Ответить

Номер ответа: 3
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #3 Добавлено: 02.12.07 21:37
Когда выполняется смена значения твоего чекбокса
Me.rb_W.Checked = False

соответственно вызывается rb_W_CheckedChanged так как Handles rb_W.CheckedChanged
ну Me.TXT_r.Text ты уже очистил и его значение = ""
Оператор Int("";) не может преобразовать пробел в цифру
opt = Int(Me.TXT_r.Text) - 110 ' ашипка здесь патамучта Me.TXT_r.Text ) ""


Делай выводы...

Ответить

Номер ответа: 4
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #4 Добавлено: 02.12.07 23:24
Public Class Form1
    Dim txt(1) As TextBox

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim btn1 As New Button
        btn1.Text = "Integer.TryParse txt1"
        btn1.Size = New Size(131, 23)
        btn1.Location = New Drawing.Point(12, 218)

        Dim btn2 As New Button
        btn2.Text = "Integer.TryParse txt2"
        btn2.Size = New Size(131, 23)
        btn2.Location = New Drawing.Point(149, 218)

        txt(0) = New TextBox
        txt(0).Text = "123"
        txt(0).Location = New Drawing.Point(12, 23)
        txt(1) = New TextBox
        txt(1).Text = "Bla-Bla-Bla"
        txt(1).Location = New Drawing.Point(180, 23)

        Me.Controls.Add(btn1)
        Me.Controls.Add(btn2)
        Me.Controls.AddRange(txt)
        AddHandler btn1.Click, AddressOf Btn1_Click
        AddHandler btn2.Click, AddressOf Btn2_Click

    End Sub

    Private Sub Btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim tmp As Integer
        If Integer.TryParse(txt(0).Text, tmp) Then
            MsgBox("Value of Integer";)
        Else
            MsgBox("Not Integer Value";)
        End If
    End Sub

    Private Sub Btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim tmp As Integer
        If Integer.TryParse(txt(1).Text, tmp) Then
            MsgBox("Value of Integer";)
        Else
            MsgBox("Not Integer Value";)
        End If
    End Sub

End Class

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам