2012-04-29 45 views
0

我有一个列表框,由于从读取文本文件的文本框中追加文本,因此不断创建空项目。我可以在启动时删除任何空的项目吗?自动删除listobx中的空项目?

+0

AFAIK更换if条件语句
String.IsNullOrEmpty(ListBox1.Items(i)) ,有一个为没有设置。你当然可以编写代码来完成它。 – RBarryYoung

回答

0

当您读取文件时,过滤空行会更好。如果这是不可能的,但:

For i As Integer = 0 To yourListBox.Items.Count - 1 
    If CStr(yourListBox.Items(i)) = String.Empty Then 
     yourListBox.Items.RemoveAt(i) 
     i -= 1 
    End If 
Next 

如果您在添加,那么假设你的控制要添加他们是这样的:

For Each line As String In IO.File.ReadAllLines(somefile) 
    yourListBox.Items.Add(line) 
Next 

...然后在这里你去:

For Each line As String In IO.File.ReadAllLines(somefile) 
    If line <> String.Empty Then yourListBox.Items.Add(line) 
Next 
+0

将文本文本中的文本添加到文本框中,并将文本框中的文本添加到列表框中。我认为问题很严重,因为正在追加文本,并在文本框中添加了一个新行,并且文本框中的空行为列表框创建了一个空白项目。谢谢,但是你的代码没有帮助。 –

+0

@ZackSaysVoteRonPaul:请问您可以显示您的代码吗? – Ryan

+0

你的代码有错误,用'Count'替换'Length'。 –

1

如果你想删除空项目形成装载 启动您的列表框的形式,以便使用Form1_Load事件

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

那么在这种情况下

Dim i As Integer = 0 
     Do While (ListBox1.Items.Count) - 1 >= i 
      If String.IsNullOrEmpty(ListBox1.Items(i)) Then 
       ListBox1.Items.Remove(ListBox1.Items(i)) 
       i -= 1 
      End If 
      i += 1 
     Loop 

添加该代码,你可以用 ListBox1.Items(i) = String.Empty

+0

它的工作原理,谢谢。 –