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