就像WEB的下拉列表那样<option value="123">这是123</option>其中“这是123”为用户可见而“123”为不可见。我想知道VB的ComboBox能不能这样,我从数据库读出的N条数据,我希望客户看到的"Name"字段而"ID"字段看不到,但是在combo1的Click事件中我想得到"Id"字段的值。希望我描述的各位能看懂。如果COMBOBOX不支持这种设置,那请问各位平时应用中是如何解决这个问题的?谢谢了!

解决方案 »

  1.   

    Private Sub Combo1_Click()
    MsgBox Combo1.ItemData(Combo1.ListIndex)'这就是你想要的ID了
    End SubPrivate Sub Form_Load()
    Dim i As LongFor i = 1 To 40
        Combo1.AddItem "这是第.."
        Combo1.ItemData(Combo1.NewIndex) = Str(i)'你的ID添加到这里
    Next i
    End Sub
      

  2.   

    combobox 不能直接做到这个效果
    一般需要这样的效果大家都是用其他方法来实现的
    比如:自己写一个这样的控件
    或者在界面上用   textbox  command  再加一人隐藏的表格控件组成
    点击 command 将表格变为可视,接收 click 事件,然后置 textbox.text 并将表格再隐藏起来
      

  3.   

    其实我有另外的一个方法呵呵,很好用!
    比如你从数据库中取出的记录集为rs
    你可以用2个combo,一个显示,一个隐藏(属性visible=false)!显示的那个用A名称填入,不显示的那个用A名称填入.然后在两个combo的click事件中写如下的代码,当然在前面应该先取得表一记录集(rs)
    Private Sub Form_Load()
    ....if rs.recordset>0 then rs.movefirstdo whilt not rs.eof 
    combo1.additem rs!Name  '(显示)
    combo2.additem rs!ID    '(隐藏)
    rs.movenext
    loopEnd Sub下面两个事件可以确保你每次选中name后对应到对应的id
    Private Sub Combo1_Click()
    Combo2.ListIndex = Combo1.ListIndex
    End Sub
    Private Sub Combo2_Click()
    Combo1.ListIndex = Combo2.ListIndex
    End Sub
    然后你可以从Combo2.text里面读到对应的id编号了.^_^
      

  4.   

    creazyfish(梳分头的鱼)的方法很好啊
      

  5.   

    tztz520(午夜逛街)和creazyfish(梳分头的鱼) 两位朋友的方法都很好,tztz520的方法用来存储整型变量最方便了,creazyfish的方法可以更灵活得存储不同类型的变量。多谢朋友们的帮忙,大家一起学习共同进步!!