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悬赏奉上,请笑纳。
展开
 我来答
报文露4840
2013-08-06 · TA获得超过428个赞
知道小有建树答主
回答量:503
采纳率:50%
帮助的人:422万
展开全部

我大概明白您的意思,但是您的数据是存储在什么地方呢?是写死的吗?如果是那样就非常简单了,直接加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控件更合适,那样的话可以单选 复选和不选都可以。

希望我的回答能帮到您!~

追问
你的思路给了我很大的提示,但是我整体架构已经做出来了,要是要改成你这样的话,有些麻烦。谢谢啦。
追答
不客气,只要对您有帮助就行了。
damyzl
2013-08-06 · TA获得超过1586个赞
知道大有可为答主
回答量:1475
采纳率:74%
帮助的人:905万
展开全部
Combo 本身没有数据过滤的功能,所以思路是:点击 Option 时重新给 Combo 赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山姜鸡汤
2013-08-06 · 超过16用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:33.6万
展开全部
Select Case Combo1.Text 你打漏了.text
追问
这不是重点。。。。
.text完全可以省略。

我要的是,通过其他条件,可以自动将combo分类。
追答

不知道你的分类是指什么 是不是像这样?

当你选择总类的时候分类跟着变

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式