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

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

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



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



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

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,论审题的重要性


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

另,想了个发送消息的方法,好处是不用重新添加数据,实际更简单:
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,论审题的重要性
两行:

GUICtrlSetData($Combo_LB, '')
GUICtrlSetData($Combo_LB, '采购|技术|其他')


不能改为一行:

GUICtrlSetData($Combo_LB, '采购|技术|其他')


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


DllCall('user32.dll', 'lresult', 'SendMessageA', 'hwnd', GUICtrlGetHandle($Combo_LB), 'uint', 0x14E, 'wparam', -1, 'lparam', 0)

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, 2024-4-28 15:46 , Processed in 0.077673 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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