找回密码
 加入
搜索
查看: 133|回复: 9

combo怎么设置为初始未选择项目的状态?

[复制链接]

该用户从未签到

发表于 2023-11-11 14:25:54 | 显示全部楼层 |阅读模式
我用下面代码创建了一个combo



  1. Global $Combo_LB = GUICtrlCreateCombo('', 430, 396, 56, 25, 0x0003)  ;0x0003:在列表框框中显示当前选择的静态文本字段.
  2. GUICtrlSetData(-1, '采购|技术|其他')

复制代码


脚本启动之后,界面Combo控件显示为空白。但鼠标点击Listview中的某个项目时,会通过下面代码修改combo显示的项目

  1. GUICtrlSetData($Combo_LB, _GUICtrlListView_GetItemText($idListview_lbc, $iCurIndex, 2))
复制代码


但是当listview中为空白时,我想让combo显示为空白,就不知道怎么做了。GUICtrlSetData($Combo_LB, "")虽然可以做到,但是会把combo中所有的项目全部清空了。

该用户从未签到

发表于 2023-11-11 15:20:22 | 显示全部楼层
0x03 样式不支持这样的操作
不过可以加一行
GUICtrlSetData($Combo_LB, '')
GUICtrlSetData($Combo_LB, '采购|技术|其他')
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2023-11-11 16:02:27 | 显示全部楼层
afan 发表于 2023-11-11 15:20
0x03 样式不支持这样的操作
不过可以加一行
GUICtrlSetData($Combo_LB, '')

谢谢A大,思路决定出路,写代码还是要看思路。
回复

使用道具 举报

该用户从未签到

发表于 2023-11-11 21:48:24 | 显示全部楼层
GUICtrlSetData( 控件ID, 数据[, 默认值])

修改选中,应该修改默认值:
GUICtrlSetData($Combo_LB,'采购|技术|其他',_GUICtrlListView_GetItemText($idListview_lbc, $iCurIndex, 2))
回复

使用道具 举报

该用户从未签到

发表于 2023-11-12 10:57:48 | 显示全部楼层
本帖最后由 afan 于 2023-11-12 11:04 编辑

gyp2k,论审题的重要性


之前两行可以改为一行:
  1. GUICtrlSetData($Combo_LB, '|采购|技术|其他')
复制代码

另,想了个发送消息的方法,好处是不用重新添加数据,实际更简单:
  1. DllCall('user32.dll', 'lresult', 'SendMessageA', 'hwnd', GUICtrlGetHandle($Combo_LB), 'uint', 0x14E, 'wparam', -1, 'lparam', 0)
复制代码


回复

使用道具 举报

该用户从未签到

发表于 2023-11-12 23:29:33 | 显示全部楼层
afan 发表于 2023-11-12 10:57
gyp2k,论审题的重要性

我又看了几遍他的需求,到现在也没弄明白他是想改变下拉列表中的项目,还是只是想修改选中项。
如果只是修改选中,那么修改参数3 默认值就好了。
如果是改变项目内容,修改参数2和参数3就行。
正常来说参数3不应该被忽略才对,除非他不想选中任何项目。
回复

使用道具 举报

该用户从未签到

发表于 2023-11-13 11:01:16 | 显示全部楼层
gyp2000 发表于 2023-11-12 23:29
我又看了几遍他的需求,到现在也没弄明白他是想改变下拉列表中的项目,还是只是想修改选中项。
如果只是 ...

光看标题都能理解的问题…… LZ也不是新手,怎么可能是你想的那种初级问题
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2023-11-13 20:54:20 | 显示全部楼层
本帖最后由 smooth 于 2023-11-13 20:56 编辑
afan 发表于 2023-11-12 10:57
gyp2k,论审题的重要性
两行:

  1. GUICtrlSetData($Combo_LB, '')
  2. GUICtrlSetData($Combo_LB, '采购|技术|其他')
复制代码


不能改为一行:

  1. GUICtrlSetData($Combo_LB, '采购|技术|其他')
复制代码


如果改为一行,则里面的项目会被重复设置。


  1. [color=#0080][font=&quot][b]DllCall[/b][/font][/color][color=#ff00][font=&quot][b]([/b][/font][/color][color=#9977bb][font=&quot]'user32.dll'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'lresult'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'SendMessageA'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'hwnd'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#0080][font=&quot][b]GUICtrlGetHandle[/b][/font][/color][color=#ff00][font=&quot][b]([/b][/font][/color][color=#aa00][font=&quot][b]$Combo_LB[/b][/font][/color][color=#ff00][font=&quot][b])[/b][/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'uint'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#ac0a9][font=&quot][b]0x14E[/b][/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'wparam'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#ac0a9][font=&quot][b]-1[/b][/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#9977bb][font=&quot]'lparam'[/font][/color][color=#ff00][font=&quot][b],[/b][/font][/color][color=#000][backcolor=rgb(247, 247, 247)][font=&quot] [/font][/backcolor][/color][color=#ac0a9][font=&quot][b]0[/b][/font][/color][color=#ff00][font=&quot][b])[/b][/font][/color]
复制代码

DLLCALL,实测不是很好用,第一次点击Listview,没有将数据写入Combo,也许是我不会用。


回复

使用道具 举报

该用户从未签到

发表于 2023-11-13 21:06:56 | 显示全部楼层

改为一行你仔细看看我写的和你写的区别。
第二种方法无实际应用代码,不做猜测
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2023-11-13 21:29:44 | 显示全部楼层
afan 发表于 2023-11-13 21:06
改为一行你仔细看看我写的和你写的区别。
第二种方法无实际应用代码,不做猜测

眼力不行,看了几遍,才发现多了一个“|”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2023-12-11 11:38 , Processed in 0.098084 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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