如何在 VB 2012 中为组合框添加唯一索引(不按顺序)

How to add a unqiue index (not in order) for a combo box in VB 2012

我正在将客户列表加载到组合框中并按客户名称排序,这意味着 ID 字段顺序不对。

我可以将名称添加到列表中没问题,但不能将 ID 字段设置为索引。 我收到错误消息“InvalidArgument='19' 的值对 'index' 无效。”

cboClients.Items.Insert(index,"Client Name") 

我假设索引必须 运行 连续并且不能乱序设置

有没有办法解决这个问题。我知道在 VB6

中是可能的
cboClients.AddItem "Client Name"
cboClients.ItemData(cboClients.NewIndex) = 55

点击组合将是

value = cboClients.ItemData(cboClients.ListIndex)

值为 55

我使用数据表解决了这个问题

    Dim tblClients As New DataTable()
    tblClients.Columns.Add("client_id")
    tblClients.Columns.Add("client_name")
    Do Until rstCombos.EOF
        tblClients.Rows.Add(rstCombos.Fields("client_id").Value, rstCombos.Fields("client_name").Value)
        rstCombos.MoveNext()
    Loop
    cboClients.DataSource = tblClients
    cboClients.DisplayMember = "client_name"
    cboClients.ValueMember = "client_id"