w393791998 发表于 2013-1-23 15:20:18

[已解决]如何将两个组合列表框(ComboBox)控件数据相关联??

本帖最后由 w393791998 于 2013-1-23 17:36 编辑

我希望做一个关联组合列表框
   第一个列表框内容是:项目1|项目2|项目3
    当第一个列表框选择 “项目1”;第二个列表框出现自定义的下拉框是 1|2
    当第一个列表框选择 “项目2”;第二个列表框出现自定义的下拉框是 4|5
$fenlei=   GUICtrlCreateCombo(项目1,220, 100,150,400) ;
                  GUICtrlSetData(-1, "项目2|项目3", "项目1");

If $ipt1 == "项目2" Then
   $var= "1|2"
$fenlei2 =GUICtrlCreateCombo("",220, 200,150,400)
               GUICtrlSetData(-1, $var, “设置1”);

就想问大家这样的功能au3 能不能实现。如果能实现,能不能指导一下我这个新人。我头脑里有大概的思路,但是不知道怎么具体写代码。

happytc 发表于 2013-1-23 15:46:16

当然能
方法一:用子窗口显示你所谓的‘第二个’列表
方法二:隐藏/显示‘第二个’Combo‘控件

我也是头脑里有大概的思路,但是不知道怎么具体写代码。

让我们一起等待代码达人的出现

haijie1223 发表于 2013-1-23 16:07:05

本帖最后由 haijie1223 于 2013-1-23 16:17 编辑

不知道楼主是不是这个意思,如果是你看下哪个符合要求~
$main = GUICreate("test", 400, 300)
$com1 = GUICtrlCreateCombo("", 20, 20)
GUICtrlSetData(-1, "项目1|项目2|项目3", "项目1")
$com2 = GUICtrlCreateCombo("", 20, 80)
GUICtrlSetData(-1, "1|2", "1")
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $com1
                        GUICtrlSetData($com2, "")
                        If GUICtrlRead($com1) = "项目1" Then GUICtrlSetData($com2, "1|2", "1")
                        If GUICtrlRead($com1) = "项目2" Then GUICtrlSetData($com2, "4|5", "4")
                        If GUICtrlRead($com1) = "项目3" Then GUICtrlSetData($com2, "7|8", "7")
                Case $com2
                       
        EndSwitch
WEnd

Opt("GUIDataSeparatorChar", "'")
$main = GUICreate("test", 400, 300)
$com1 = GUICtrlCreateCombo("", 20, 20)
GUICtrlSetData(-1, "项目1'项目2'项目3", "项目1")
$com2 = GUICtrlCreateCombo("", 20, 80)
GUICtrlSetData(-1, "1|2", "1|2")
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $com1
                        GUICtrlSetData($com2, "")
                        If GUICtrlRead($com1) = "项目1" Then GUICtrlSetData($com2, "1|2", "1|2")
                        If GUICtrlRead($com1) = "项目2" Then GUICtrlSetData($com2, "4|5", "4|5")
                        If GUICtrlRead($com1) = "项目3" Then GUICtrlSetData($com2, "7|8", "7|8")
                Case $com2
                       
        EndSwitch
WEnd

w393791998 发表于 2013-1-23 16:21:36

回复 3# haijie1223
大爱 “haijie1223” 你的第一种方式就是我要的答案,回去研究一下,谢谢了。{:face (239):}

heroxianf 发表于 2016-11-4 00:50:04

学习到此顶一下~
页: [1]
查看完整版本: [已解决]如何将两个组合列表框(ComboBox)控件数据相关联??