找回密码
 加入
搜索
楼主: kk_lee69

[AU3基础] [已解决] ListView 加上 CheckBox 风格后…CheckBox 如何变成单选的…

 火.. [复制链接]
发表于 2012-9-1 01:29:09 | 显示全部楼层
本帖最后由 netegg 于 2012-9-1 01:44 编辑

回复 16# kk_lee69
合起来写吧
[au3]
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
  Local $aHit = _GUICtrlListView_HitTest($hListView)
  If $aHit[4] Then _GUICtrlListView_ClickItem($hListView, $aHit[0])
  $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
  Local $Index = DllStructGetData($tInfo, "Index")
  _GUICtrlListView_SetItemChecked($hListView, -1, False)
  _GUICtrlListView_SetItemChecked($hListView, $Index)
[/au3]
 楼主| 发表于 2012-9-1 01:48:27 | 显示全部楼层
回复 17# netegg

呵呵 果然 點擊順多了 也有想要的效果  只差在一個地方 還能修正嗎
就是 點擊到 非項目區域....也就是說 LISTVIEW 有顯示 但是 實際上 沒資料的區域
就會變成 全選了

本帖子中包含更多资源

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

×
发表于 2012-9-1 01:52:01 | 显示全部楼层
本帖最后由 netegg 于 2012-9-1 01:56 编辑

回复 18# kk_lee69
什么意思,非资料区不操作?
 楼主| 发表于 2012-9-1 02:10:58 | 显示全部楼层
回复 19# netegg


點到紅色區域範圍  會變成checkBox 全選

本帖子中包含更多资源

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

×
发表于 2012-9-1 02:23:29 | 显示全部楼层
回复 20# kk_lee69
[au3]
.....
Case $NM_CLICK
  Local $aHit = _GUICtrlListView_HitTest($hListView)
  If $aHit[5] Then _GUICtrlListView_ClickItem($hListView, $aHit[0])
  If $aHit[0] <> -1 Then
     $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)  
     Local $Index = DllStructGetData($tInfo, "Index")
     _GUICtrlListView_SetItemChecked($hListView, -1, False)
     _GUICtrlListView_SetItemChecked($hListView, $Index)
  EndIf
.....
[/au3]
 楼主| 发表于 2012-9-1 02:34:51 | 显示全部楼层
回复 21# netegg

OK 了  非常感謝 蛋大的 幫忙~~ 您真辛苦  這麼晚了 還沒睡...呵呵

我自己多加了 一段程式...處理 當 沒有選中任何東西的時候 把前面的打勾取消....

        If $aHit[0] = -1 Then
        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)  
        Local $Index = DllStructGetData($tInfo, "Index")
        _GUICtrlListView_SetItemChecked($hListView, -1, False)
        EndIf
发表于 2012-9-1 02:39:21 | 显示全部楼层
本帖最后由 netegg 于 2012-9-1 02:40 编辑

回复 22# kk_lee69
这个有点累了,功能代码一行就够了
[au3]
...
Else
  _GUICtrlListView_SetItemChecked($hWnd, -1, False)
endif
....
[/au3]
 楼主| 发表于 2012-9-1 02:41:05 | 显示全部楼层
回复 23# netegg

@@ 對ㄟ 我怎麼沒想到用 ELSE ...
发表于 2012-9-2 01:19:35 | 显示全部楼层
回复 1# kk_lee69
代码换个位置精简下吧
[au3]
Case $NM_CLICK ; Sent by a list-view control when user clicks an item with left mouse button
    Local $aHit = _GUICtrlListView_HitTest($hListView)
    If $aHit[5] Then _GUICtrlListView_ClickItem($hListView, $aHit[0])
    _GUICtrlListView_SetItemChecked($hListView, -1, False)
    If $aHit[0] <> -1 Then
        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
        Local $Index = DllStructGetData($tInfo, "Index")
        _GUICtrlListView_SetItemChecked($hListView, $Index)
    EndIf
[/au3]
 楼主| 发表于 2012-9-2 01:38:23 | 显示全部楼层
回复 25# netegg

蛋大 無法編輯 我按下編輯 出現 沒有定義...好像被歸類到已解決 會出現這樣的問題
发表于 2012-9-2 01:48:50 | 显示全部楼层
回复 26# kk_lee69
无所谓,自己知道就行了,这个问题不大,只是说一下而已,无大碍,不影响效率
发表于 2014-7-12 09:41:56 | 显示全部楼层
正好用到,谢谢分享!
发表于 2014-9-27 23:04:29 | 显示全部楼层
回复 7# kk_lee69


    点击非选择区域,怎么不会变成全选。还有单你左键点CHECKBOX 成了蓝色高亮并打勾后,再用右键点击一样能勾选,此时能不能设置右键点击无效????
发表于 2015-1-30 00:10:57 | 显示全部楼层
不错~真好需要中~~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 15:45 , Processed in 0.071180 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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