首页 > 解决方案 > 如何在 VB 2012 中为组合框添加 unqiue 索引(不按顺序)

问题描述

我正在将客户列表加载到组合框中并按客户名称排序,这意味着 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

标签: visual-studio-2012

解决方案


我通过使用 DataTable 解决了这个问题

    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"

推荐阅读