VB.NET 将文本框中的每个单词添加为列表框中的新项目

VB.NET Add each words from textbox as new items in listbox

我想将文本框中的每个单词作为新项目添加到列表框中并且它起作用了,但问题是文本框是多行的,所以代码每次都会添加一行中的最后一个单词和下一个单词中的下一个单词同一项目中的行。

代码如下:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim words() As String
    Dim space() As Char = {" "c}
    'split each word by space
    words = TextBox1.Text.Split(words)
    Dim word As String
    For Each word In words
        'Add each word in to Listbox
        ListBox1.Items.Add(word)
    Next
End Sub

我试过了,但没用:

Dim words() As String
    Dim space() As Char = {" "c}
    Dim xx As Char = vbNewLine
    'split each word by space
    words = TextBox1.Text.Split(words AndAlso xx)
    Dim word As String
    For Each word In words
        'Add each word in to Listbox
        ListBox1.Items.Add(word)
    Next

最后期限:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim words() As String
    Dim space() As Char = {" "c, Microsoft.VisualBasic.vbCr, Microsoft.VisualBasic.vbLf}
    words = TextBox1.Text.Split(space, StringSplitOptions.RemoveEmptyEntries)
    For Each word As String In words
        ListBox1.Items.Add(word)
    Next
End Sub

如果你想按空格分割但是 return 行让你感到困惑,请删除 return.

words = TextBox1.Text.Replace(chr(10),"").replace(chr(13),"").Split(words)

编辑:

等等,我想你发布了一些错误的代码。不确定你的工作情况。本来应该是这样的

words = TextBox1.Text.Replace(chr(10),"").replace(chr(13),"").Split(" "c)

space 数组的初始化更改为

Dim space() As Char = {" "c, Microsoft.VisualBasic.vbCr, Microsoft.VisualBasic.vbLf}

并在拆分时添加 RemoveEmptyEntries 选项

words = TextBox1.Text.Split(space, StringSplitOptions.RemoveEmptyEntries)

这将同时使用回车 return 和换行字符作为分隔符,而 RemoveEmptyEntries 选项将清除回车 [=] 之间产生的错误空白 "word" 的结果22=] 和换行以及文本框末尾的任何空行。