2012-04-29 47 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

它的工作原理,謝謝。 –