Combobox 通过列表索引链接组合框和文本框
我有一个组合框和一个文本框。组合框按字母顺序排序,共有五项。“苹果”“熊”“猫”“狗”“麋鹿”。在数据库中,它们与权重一起列出,因此 苹果重2磅,熊重100磅,猫重7磅,狗重20磅,麋鹿重30磅 我想更改组合框,根据我在失去焦点时输入的重量选择正确的动物。所以我有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
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谢谢你,乔治,我被航班延误耽误了,没有机会回到这里,谢谢你处理代码示例。