如何创建数组并放入列表框

时间:2013-10-02 23:08:32

标签: .net vb.net

我有这个代码似乎工作正常。唯一的问题是,如果我在文本框中,然后双击按钮或双击回车键,我在这里得到一个例外

“如果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

2 个答案:

答案 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