组合框:按使用情况对选项进行排序

时间:2013-11-06 15:43:03

标签: .net vb.net combobox

起点: 我有一个带有组合框的datagridview。组合框有大约30个选项(增长),每个用户使用不同频率的选项。

问题: 的 我正在寻找一种方法来通过每个客户端的使用来对该组合框中的选项进行排序。

我尝试了什么: 我尝试使用计数器并将该值存储在外部.txt文件中,并在用户再次打开其客户端时再次打开它。还有另外一种方法,因为这是一个糟糕的解决方案。

其他信息: 我使用ClickOnce更新客户端。

1 个答案:

答案 0 :(得分:0)

如果您将每个项目添加到组合框中,这是一个包含count属性的自定义类,则覆盖ToString方法将允许将对象直接添加到组合框中。使用list来跟踪排序可以很好地使用combobox.items集合的AddRange方法。

Public Class CBItem
    Public Item As String = ""
    Public Count As Integer = 0
    Public Overrides Function ToString() As String
        Return Item
    End Function
End Class

    Dim CBItems As New List(Of CBItem)
    'This adds items to the list for demonstration purposes
    For i = 1 To 5
        CBItems.Add(New CBItem With {.Item = i.ToString, .Count = 5 - i})
    Next
    CBItems = CBItems.OrderBy(Function(x) x.Count).ToList
    ComboBox1.Items.AddRange(CBItems.ToArray)

My.Settings对于在使用之间存储列表可能很方便。