找回密码
 加入
搜索
查看: 2508|回复: 5

[GUI管理] Listbox如何单手操作选中不连续的多项

[复制链接]
发表于 2017-4-20 22:34:54 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2017-4-21 06:47 编辑
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form = GUICreate("Form1")
$Listbox = GUICtrlCreateList("",10,10,105,160,BitOR($LBS_STANDARD, $LBS_EXTENDEDSEL))

Local $Arr=StringSplit("*|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec","|",3)
 _GUICtrlListBox_BeginUpdate($Listbox)
For $i = 0 To ubound($Arr)-1
    _GUICtrlListBox_AddString($Listbox,$Arr[$i])
Next
_GUICtrlListBox_EndUpdate($Listbox)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd
如上代码的列表框,一手按住CTRL或Shift键后,另一手操作鼠标可以选择连续或不连续的多项。或一手鼠标拖动选择连续的几项。
但是如果想选择不连续的多项或取消已选中的几项中的某项则需要双手配合按住CTRL或Shift键才行。
如何实现:不需要一手按住CTRL或Shift键,单手鼠标操作可以选择连续或不连续的多项;点击已选中的多项中的某项,则取消选中该项,再点击,可以重新选中该项,也就是点击鼠标不会影响其它选择

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-4-21 21:57:09 | 显示全部楼层
本帖最后由 kk_lee69 于 2017-4-21 23:51 编辑

回复 1# cashiba



http://www.autoitx.com/search.ph ... bmit=yes&page=1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-4-22 00:38:12 | 显示全部楼层
回复  cashiba
kk_lee69 发表于 2017-4-21 21:57

效果还不太理想:
1、闪烁问题
2、已经选中的再点击不能取消选中
发表于 2017-4-22 13:54:18 | 显示全部楼层
本帖最后由 kk_lee69 于 2017-4-22 15:27 编辑

回复 3# cashiba



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-4-23 09:44:07 | 显示全部楼层
回复  cashiba
kk_lee69 发表于 2017-4-22 13:54

对,就是这个效果,看两个文件大小不一样,好像是用了不同方案.....怎么做到的呢?
发表于 2017-4-23 20:01:42 | 显示全部楼层
回复 5# cashiba

多兩行代碼...........

按下  放開
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-28 18:44 , Processed in 0.078770 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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