如何在vb.net中解决system.invalidcastexception

时间:2017-07-18 22:49:57

标签: vb.net

好吧,我有这段代码。我想将文本框的内容存储到字符串数组中(我更喜欢使用字符串列表),然后将数组的每个元素打印到另一个文本框中。但是,当我尝试编译此代码时,我收到此错误消息: System.InvalidCastException:'从字符串转换"" to int无效' FormatException:输入字符串的格式不正确

有什么建议吗?

Public Class NewUser

Dim textUser As String
Dim strUserName As New List(Of String)
Private Sub btnCreateUser_Click(sender As Object, e As EventArgs) Handles btnCreateUser.Click
    textUser = txtNewUser.Text
    If textUser <> "" Then
        strUserName.Add(textUser)
        txtNewUser.Clear()
    Else
        MsgBox("Username or Password is missing. Try again!")
    End If
    For Each i As String In strUserName
        TextBox1.Text = String.Join(",", strUserName(i))
    Next i
End Sub

End Class

1 个答案:

答案 0 :(得分:4)

我根本不清楚你在这里要做什么:

For Each i As String In strUserName
    TextBox1.Text = String.Join(",", strUserName(i))
Next i

对于初学者来说,i是一个字符串,你试图像整数一样使用它作为数组的索引。但即使你要纠正它:

String.Join(",", i)

那仍在尝试加入一个字符串。这可能也不会编译,但即使这样做也不会在逻辑上做任何事情。除此之外,每次循环迭代时你都会覆盖TextBox1.Text,所以最好它只会等于数组中的最后一个值。

如果您只是想将数组加入该文本框,那就是一行:

TextBox1.Text = String.Join(",", strUserName)

不需要循环。