![](/img/trans.png)
[英]How to keep the formulas and clear the content in Excel using VB.net?
[英]How to keep the content of ListBox in Vb.net
如果我想保留文本框的內容,我會這樣做TextBox1.Text = TextBox1.Text & Something
有沒有辦法對列表框項目的內容做同樣的事情?
在我的RichTextBox3
中,我有C:\Work
目錄中的文件列表
我試過這段代碼,但它給了我最后一行的內容(之前沒有添加行)
Do Until number = RichTextBox3.Lines.Length
Dim directory = "C:\Work\" & RichTextBox3.Lines(number)
Dim files() As System.IO.FileInfo
Dim dirinfo As New System.IO.DirectoryInfo(directory)
files = dirinfo.GetFiles("*", IO.SearchOption.AllDirectories)
For Each file In files
ListBox1.Items.Add(file)
Next
number = number + 1
Loop
幫助表示贊賞
感謝大家
我不確定這是否會解決您所說的問題,但該代碼存在嚴重問題,我需要提供一個長代碼片段來解決它,並且在評論中無法閱讀。
TextBox
或RichTextBox
的Lines
屬性不是“實時”數據,即它不引用存儲在 object 中的數組。 每次獲取該屬性時,都會創建一個新數組。 對於該循環的每次迭代,您都會得到兩次RichTextBox3.Lines
,所以這顯然是錯誤的。 您也不應該像那樣將項目一一添加到ListBox
中。 您應該首先創建所有項目的列表,然后通過一次調用AddRange
將它們全部添加:
Dim files As New List(Of FileInfo)
For Each line In RichTextBox3.Lines
Dim folderPath = Path.Combine("C:\Work", line)
Dim folder As New DirectoryInfo(folderPath)
files.AddRange(folder.GetFiles("*", SearchOption.AllDirectories))
Next
ListBox1.Items.AddRange(files.ToArray())
如果該代碼沒有按預期工作,您可以對其進行調試並在各個階段查看files
的內容,以確保您獲得了預期的文件。 在調用GetFiles
之前可能還值得測試folder.Exists
,除非您絕對確定RichTextBox
中的每一行都代表一個現有文件夾。
這將做你想要的。
number = 0
ListBox1.items.clear()
Do Until number = RichTextBox3.Lines.Length
Dim directory = "C:\Work\" & RichTextBox3.Lines(number)
Dim files() As System.IO.FileInfo
Dim dirinfo As New System.IO.DirectoryInfo(directory)
files = dirinfo.GetFiles("*", IO.SearchOption.AllDirectories)
For Each file In files
ListBox1.Items.Add(file)
Next
number = number + 1
Loop
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.