找回密码
 加入
搜索
查看: 2904|回复: 4

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

  [复制链接]
发表于 2013-1-23 15:20:18 | 显示全部楼层 |阅读模式
本帖最后由 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 能不能实现。如果能实现,能不能指导一下我这个新人。我头脑里有大概的思路,但是不知道怎么具体写代码。
发表于 2013-1-23 15:46:16 | 显示全部楼层
当然能
方法一:用子窗口显示你所谓的‘第二个’列表
方法二:隐藏/显示‘第二个’Combo‘控件

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

让我们一起等待代码达人的出现
发表于 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
 楼主| 发表于 2013-1-23 16:21:36 | 显示全部楼层
回复 3# haijie1223
大爱 “haijie1223” 你的第一种方式就是我要的答案,回去研究一下,谢谢了。
发表于 2016-11-4 00:50:04 | 显示全部楼层
学习到此  顶一下~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-19 16:06 , Processed in 0.091543 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表