Combobox 通过列表索引链接组合框和文本框

Combobox 通过列表索引链接组合框和文本框,combobox,textbox,vb6,listitem,Combobox,Textbox,Vb6,Listitem,我有一个组合框和一个文本框。组合框按字母顺序排序,共有五项。“苹果”“熊”“猫”“狗”“麋鹿”。在数据库中,它们与权重一起列出,因此 苹果重2磅,熊重100磅,猫重7磅,狗重20磅,麋鹿重30磅 我想更改组合框,根据我在失去焦点时输入的重量选择正确的动物。所以我有 For i = 0 To 4 If txtField.Text = Me.cmbAnimal.ItemData(i) Then Me.cmbAnimal.ListIndex = i End If

我有一个组合框和一个文本框。组合框按字母顺序排序,共有五项。“苹果”“熊”“猫”“狗”“麋鹿”。在数据库中,它们与权重一起列出,因此

苹果重2磅,熊重100磅,猫重7磅,狗重20磅,麋鹿重30磅

我想更改组合框,根据我在失去焦点时输入的重量选择正确的动物。所以我有

 For i = 0 To 4
    If txtField.Text = Me.cmbAnimal.ItemData(i) Then
        Me.cmbAnimal.ListIndex = i
    End If

    Next i  

然而,这是将体重与动物名称进行比较。我怎么能改写这个

在示例中,您有两个不同的组合框:
cmbAnimal
cmbSeqCarrier
。你用哪一种

关于使用ItemData,您的想法是正确的(假设它存储了动物的体重)。在下面的示例中,
ItemData
属性保存权重。如果
Text1
是您输入重量的框,下面的示例应该完成您要求的任务

'Load weights with the names to a combobox
Private Sub Form_Load()
    cmbAnimal.AddItem "APPLE"
    cmbAnimal.ItemData(cmbAnimal.NewIndex) = 2
    cmbAnimal.AddItem "BEAR "
    cmbAnimal.ItemData(cmbAnimal.NewIndex) = 100
    cmbAnimal.AddItem "CAT"
    cmbAnimal.ItemData(cmbAnimal.NewIndex) = 7
    cmbAnimal.AddItem "DOG"
    cmbAnimal.ItemData(cmbAnimal.NewIndex) = 20
    cmbAnimal.AddItem "ELK"
    cmbAnimal.ItemData(cmbAnimal.NewIndex) = 30
End Sub
如果已将权重加载到
ItemData
,则这将正常工作:

Private Sub Text1_LostFocus()
    Dim i As Integer
    For i = 0 To cmbAnimal.ListCount - 1
        ' compare weight entered into text box with weights stored in the combobox
        If Trim(cmbAnimal.ItemData(i)) = Trim(Text1.Text) Then
            cmbAnimal.ListIndex = (i)
            Exit For
        End If
    Next i
End Sub

还有一个相关的标记属性,对于每只动物,在声明、手动添加或循环期间将重量放入标记中,然后将文本与该项目的标记进行比较,这将为您提供所需的内容。如果你需要一个工作示例,请告诉我,我必须在有VB6副本的系统上。是的,我想要一个工作示例,它可以帮助我一点,我会把它发送给你并发布在这里。哦,那应该是动物,我会更改它的。有什么问题吗?你输入体重,你就得到了动物。这不是你想要的吗?你能详细解释一下吗?乔治,你对答案的假设是错误的。每只动物在数据库中都有一个体重,但它的体重并没有存储在任何地方。我得到了它,我只需要找到基于字符串的组合框索引,那么我如何才能找到“CAT”的索引我看不到连接
我只需要找到基于字符串的组合框索引
。如何将输入字符串(即权重)连接到组合索引,而不在组合框中加载权重?当你用名字填充组合框时,你能用权重填充
ItemData
吗?+1谢谢你,乔治,我被航班延误耽误了,没有机会回到这里,谢谢你处理代码示例。