cashiba 发表于 2017-4-20 22:34:54

Listbox如何单手操作选中不连续的多项

本帖最后由 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键,单手鼠标操作可以选择连续或不连续的多项;点击已选中的多项中的某项,则取消选中该项,再点击,可以重新选中该项,也就是点击鼠标不会影响其它选择

kk_lee69 发表于 2017-4-21 21:57:09

本帖最后由 kk_lee69 于 2017-4-21 23:51 编辑

回复 1# cashiba



http://www.autoitx.com/search.php?searchid=245&orderby=lastpost&ascdesc=desc&searchsubmit=yes&page=1

cashiba 发表于 2017-4-22 00:38:12

回复cashiba
kk_lee69 发表于 2017-4-21 21:57 http://www.autoitx.com/images/common/back.gif
效果还不太理想:
1、闪烁问题
2、已经选中的再点击不能取消选中
{:face (382):}

kk_lee69 发表于 2017-4-22 13:54:18

本帖最后由 kk_lee69 于 2017-4-22 15:27 编辑

回复 3# cashiba



cashiba 发表于 2017-4-23 09:44:07

回复cashiba
kk_lee69 发表于 2017-4-22 13:54 http://www.autoitx.com/images/common/back.gif
对,就是这个效果,看两个文件大小不一样,好像是用了不同方案.....怎么做到的呢?

kk_lee69 发表于 2017-4-23 20:01:42

回复 5# cashiba

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

按下放開
页: [1]
查看完整版本: Listbox如何单手操作选中不连续的多项