vb.net - 如何在 Vb.net 中保留 ListBox 的内容
问题描述
如果我想保留文本框的内容,我会这样做
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
帮助表示赞赏
感谢大家
解决方案
我不确定这是否会解决您所说的问题,但该代码存在严重问题,我需要提供一个长代码片段来解决它,并且在评论中无法阅读。
or的Lines
属性不是“实时”数据,即它不引用存储在对象中的数组。每次获取该属性时,都会创建一个新数组。对于该循环的每次迭代,您都会获得两次,所以这显然是错误的。您也不应该像那样一个一个地添加项目。您应该首先创建所有项目的列表,然后通过一次调用将它们全部添加到:TextBox
RichTextBox
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
各个阶段的内容,以确保您获得了预期的文件。folder.Exists
在调用 之前也可能值得测试GetFiles
,除非您绝对确定 中的每一行都RichTextBox
代表一个现有文件夹。
推荐阅读
- excel - ListBox1.List 生成对象定义错误
- react-native - 为什么反应原生 admob 在 RN<57.8 中不起作用
- php - 从 MYSQL 获取 JSON 数据并将其解析为数组的问题
- yii2 - Yii2 yii2mod/yii2-rbac
- gradle - 测试后执行gradle任务
- c# - MVC 中的内联样式和字符串(视图)
- c# - 一种组合 2 个不相关的 JSON 对象的方法
- c++ - “没有可行的重载=”nullptr
- c++ - 创建包含 std::atomic 的对象列表
- google-apps-script - 行为空时不显示 Google 表格时间戳