我有一个checkedlistbox来填充文本框值,但是我有一些问题,如果我将文本框中的文本粘贴到word文件中,它带有换行符,而不仅仅是空格。也许这就是为什么检查列表框没有正确填充的原因。
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
Dim separated = TextBox2.Text.Split(vbNewLine & " ")
CheckedListBox1.Items.Clear()
CheckedListBox1.Items.AddRange(separated)
CheckedListBox1.Items.Remove(vbCrLf)
CheckedListBox1.Items.Remove("#")
CheckedListBox1.Items.Remove("PI")
End Sub
答案 0 :(得分:2)
您当前正在分隔空格后跟新行的字符串。此字符串周围的任何其他空格都包含在输出中。您希望使用不同版本的Split,列出每个字符,以便可以使用这些字符中的任何一个来拆分字符串:
Dim separated = TextBox2.Text.Split(vbCr, vbLf, vbTab, " "c)
这会将空格,制表符,换行符或回车符中的一个或多个视为拆分,并且不会在它返回的字符串中包含任何一个。然而,它将返回许多空字符串,因此您需要单独添加字符串,将其过滤掉。其余代码可以替换为:
CheckedListBox1.Items.Clear()
For Each item In separated
If item <> "" Then CheckedListBox1.Items.Add(item)
Next
答案 1 :(得分:1)
摆脱所有空格,然后拆分
Dim separated = TextBox2.Text.Replace(" ", "").Split(vbNewLine)
更新以删除标签
char tabs = '\u0009';
Dim separated = TextBox2.Text.Replace(" ", "").Replace(tabs, "").Split(vbNewLine)
您需要删除拆分前不需要的所有项目。 所以...基于你的例子
char tabs = '\u0009';
StrippedText = TextBox2.Text.Replace(" ", "").Replace(tabs, "").Replace("P1" & vbCRLF & vbCRLF, "").Replace(vbCRLF & "#" & vbCRLF, "")
Dim separated = StrippedText.Split(vbNewLine)