VB combobox 自动根据条件归类显示问题 100
我的代码如下:SelectCaseCombo1Case"GF-780"mixf=1000maxf=29.9chip=0.65Case"GF-880"mixf=1500ma...
我的代码如下:
Select Case Combo1
Case "GF-780"
mixf = 1000
maxf = 29.9
chip = 0.65
Case "GF-880"
mixf = 1500
maxf = 55
chip = 0.65
Case "GS-326"
mixf = 1000
maxf = 23
chip = 0.55
End Select
这个时候,我需要做一个按条件搜索的功能。
例如,我添加一个Option控件,要求内容为 mixf=1000,当我点击的时候,combo1列表只显示 mixf为1000的所有项(这几个代码就如GF-780和GS-326)
我添加另一个Option控件,条件为chip=0.65,当我点击的时候,combo1只显示chip为0.65的所有项(这几个代码就如GF-780和GF-880)
求助,100悬赏奉上,请笑纳。 展开
Select Case Combo1
Case "GF-780"
mixf = 1000
maxf = 29.9
chip = 0.65
Case "GF-880"
mixf = 1500
maxf = 55
chip = 0.65
Case "GS-326"
mixf = 1000
maxf = 23
chip = 0.55
End Select
这个时候,我需要做一个按条件搜索的功能。
例如,我添加一个Option控件,要求内容为 mixf=1000,当我点击的时候,combo1列表只显示 mixf为1000的所有项(这几个代码就如GF-780和GS-326)
我添加另一个Option控件,条件为chip=0.65,当我点击的时候,combo1只显示chip为0.65的所有项(这几个代码就如GF-780和GF-880)
求助,100悬赏奉上,请笑纳。 展开
3个回答
展开全部
我大概明白您的意思,但是您的数据是存储在什么地方呢?是写死的吗?如果是那样就非常简单了,直接加OPTION控件的click事件就可以了:
Private Sub Option1_Click()
Combo1.Clear
Combo1.AddItem "GF-780"
Combo1.AddItem "GS-326"
End Sub
Private Sub Option2_Click()
Combo1.Clear
Combo1.AddItem "GF-780"
Combo1.AddItem "GF-880"
End Sub
但是我想应该不是这样,而且这样的话意义不大。所以如果要是写活的话就必须将数据先存储起来,再在点击option控件的时候作比对,将想要的结果添加到combo控件中。
我建议您将数据存储在一个类型数组中,下面的代码来达到将您想要的结果。
首先定义一个全局的类型数组A 来存储数据
Private Type m_t
m_name As String
m_mixf As Single
m_maxf As Single
m_chip As Single
End Type
Dim a() As m_t
'数据可以在程序运行时就加载进来
Private sub Form_load()
ReDim a(2)
a(0).m_name = "GF-780"
a(0).m_mixf = 1000
a(0).m_maxf = 29.9
a(0).m_chip = 0.65
a(1).m_name = "GF-880"
a(1).m_mixf = 1500
a(1).m_maxf = 55
a(1).m_chip = 0.65
a(2).m_name = "GS-326"
a(2).m_mixf = 1000
a(2).m_maxf = 23
a(2).m_chip = 0.55
for i =0 to ubound(a)
combo1.additem a(i).m_name
next i
end sub
Private Sub Option1_Click()
Combo1.Clear
For i = 0 To UBound(a)
If a(i).m_mixf = 1000 Then Combo1.AddItem a(i).m_name '或者=val(option1.caption)也可以
Next i
End Sub
Private Sub Option2_Click()
Combo1.Clear
For i = 0 To UBound(a)
If a(i).m_chip = 0.65 Then Combo1.AddItem a(i).m_name '或者=val(option2.caption)也可以
Next i
End Sub
大概是这样吧,不过程序运行中发现使用option控件不太合适,那样就必须有一个选择,要非这样的话建议再加一个option控件 来显示全部,否则的话可以改为check控件更合适,那样的话可以单选 复选和不选都可以。
希望我的回答能帮到您!~
追问
你的思路给了我很大的提示,但是我整体架构已经做出来了,要是要改成你这样的话,有些麻烦。谢谢啦。
追答
不客气,只要对您有帮助就行了。
展开全部
Combo 本身没有数据过滤的功能,所以思路是:点击 Option 时重新给 Combo 赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询