【发布时间】:2012-05-01 03:31:04
【问题描述】:
所以我有两个列表框。 Listbox1 从一个目录收集文件,我有一个添加按钮,可以将 Listbox1 中的选定文件添加到 Listbox2。
有没有办法手动对这些项目进行排序?也许有一个上下按钮?
我想排序/重新排序的原因是我将有一个进程来运行这些选定的文件,并且每个文件都必须生成另一个文件名唯一的文件。
一个简单的例子是处理 FILE1.txt 并生成 FILE1.pdf 等。
有没有更简单的方法来完成排序/重新排序?
更新
这是我目前如何填充我的listbox1,然后添加任何内容到listbox2,这是我希望以这种或其他方式排序的列表框。
Dim directoryInfo As _
New System.IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath)
Dim fileInfos() As System.IO.FileInfo
fileInfos = directoryInfo.GetFiles()
For Each fileInfo As System.IO.FileInfo In fileInfos
ListBox1.DataSource = _list
_list.Add(fileInfo.Name)
_list.Sort()
Next
'Refresh Listbox1
ListBox1.DataSource = Nothing
ListBox1.DataSource = _list
【问题讨论】:
-
您应该从 For-Each 循环中删除
ListBox1.DataSource = _list。在循环终止后刷新 ListBox 就足够了,ListBox1.DataSource = Nothing第一次不是必需的。只是以后需要,为了强制DataSource刷新;否则,当您再次分配相同的列表时,即使您同时向列表中添加了项目,它也不会执行任何操作。 -
在
Next之后致电_list.Sort()。在每个添加单个项目之后对列表进行排序是没有意义的。
标签: vb.net winforms visual-studio-2010 listbox