我有这个代码似乎工作正常。唯一的问题是,如果我在文本框中,然后双击按钮或双击回车键,我在这里得到一个例外
“如果GotxtBox.Text< 10那么”
它说“无效案件例外未被取消” “从字符串转换为double类型无效”如何阻止这种情况发生?
Private Sub GoBtn_Click(sender As Object, e As EventArgs) Handles GoBtn.Click
If GotxtBox.Text < 10 Then
MessageBox.Show("Number can not be less than 10")
GotxtBox.Clear()
Return
End If
If GotxtBox.Text > 100 Then
MessageBox.Show("Number can not be greater than 100")
GotxtBox.Clear()
Return
End If
Dim number As Integer = Val(GotxtBox.Text) ' get number
' add the number to the end of the numberListBox
GoLstBox.Items.Add(number)
If GoLstBox.Items.Count = 20 Then
GoBtn.Enabled = False
MessageBox.Show("Exactly Twenty Numbers Must Be Entered")
End If
GotxtBox.Clear()
GotxtBox.Focus()
End Sub
答案 0 :(得分:0)
文本框包含文本,“10”与值10不同。您需要在比较之前转换文本。查看Integer.Tryparse
和/或Convert.ToInt32
。
您稍后会使用Val
执行此类操作,但也应将其更改为TryParse
。 NET Val与VB6 Val不同。
答案 1 :(得分:0)
Dim text As String = GotxtBox.Text
Dim value As Double
If Double.TryParse(text, value) Then
If value < 10 Then
MessageBox.Show("Number can not be less than 10")
GotxtBox.Clear()
Return
End If
If value > 100 Then
MessageBox.Show("Number can not be greater than 100")
GotxtBox.Clear()
Return
End If
Else
'error, cannot convert
GotxtBox.Clear()
Return
End If