使用ComboBox在ListBox中排序项目

时间:2012-02-25 22:59:44

标签: vb.net

(ListBox上的所有名称实际上都是.txt文件,其中包含可以通过某个窗口放入程序的不同值。)

我正在尝试使用ComboBox按特定值对列表中的项目进行排序。所以说我在ComboBox中选择“按字母顺序排序”,我希望它按字母顺序对ListBox中的项目进行排序。

另外,如果我想在.txt文件中找到一个我想要排序的值,有没有办法可以按顺序排序?

1 个答案:

答案 0 :(得分:1)

您无法直接对文本文件进行排序。您必须创建一个包含您所参与信息的类。

Public Class TextfileInfo
    Public Filename As String
    Public Filedate As DateTime
    Public Filesize As Integer
    Public SomeValueOfTextfile As String
    Public SomeOtherValueOfTextfile As String

    Public Overrides Function ToString() As String
        Return Filename
        ' Will be displayed in the ListBox.
    End Function
End Class

然后,您可以像这样更改列表框内容

Dim files As New List(Of TextfileInfo)()
'TODO: add items to files

Dim displayList = From file In files _
      Order By file.Filesize _
      Select file
listBox1.Items.Clear()
listBox1.Items.AddRange(displayList.ToArray())

您可以像这样获取文件及其信息

Dim files As New List(Of TextfileInfo)()
Dim dir = New DirectoryInfo("C:\MyTextfiles")
Dim fileInfo As FileInfo() = dir.GetFiles("*.txt")
For Each fi As FileInfo In fileInfo
    Dim file = New TextfileInfo()
    file.Filesize = CInt(fi.Length)
    ' Add all other properties.
    ' Open the file and extract information from it.
    files.Add(file)
Next

我让你编程其他细节。