TreeView例子问题
本帖最后由 颜勇 于 2010-12-20 17:12 编辑此帖已删! 没有INI文件,无法验证,为何把49行代码注释掉了呢?
下面这个帖可以参考
http://www.autoitx.com/forum.php?mod=viewthread&tid=20199&rpid=241367&ordertype=0&page=2#pid241367 点 - 号收回就不会全部选中 点 - 号收回就不会全部选中
qq342252004 发表于 2010-12-18 13:16 http://www.autoitx.com/images/common/back.gif
是的!
这段代码应该是我后来整理过的,没想到楼主也有哦! 是的!
这段代码应该是我后来整理过的,没想到楼主也有哦!
水木子 发表于 2010-12-18 13:20 http://www.autoitx.com/images/common/back.gif
难道你有更新的?分享一下啊。 没有!你这段应该是最新的。 没有!你这段应该是最新的。
水木子 发表于 2010-12-18 13:36 http://www.autoitx.com/images/common/back.gif有的话分享一下哦,我那个驱动选择工具都是用你这勾选例子写的。 嗯!这个我知道,如果有一定告诉你! 本帖最后由 颜勇 于 2010-12-20 17:17 编辑
此帖已删! 我的怎么没发现这个问题啊?测试正常的啊.看下我发的帖子.
http://www.autoitx.com/forum.php?mod=viewthread&tid=20199&extra=&page=1 本帖最后由 颜勇 于 2010-12-20 17:17 编辑
回复 10# mo_shaojie
此帖已删! 本帖最后由 颜勇 于 2010-12-20 17:16 编辑
此贴已删! 本帖最后由 yhxhappy 于 2010-12-19 01:03 编辑
我觉得是,点[+]号展开,选取一个子项,当点父项旁边的[—]号收起来的时候,选择的焦点会转移到父项,此时程序就会认为你选了父项,所以就把它下面的子项全选中了
把以下代码替换到脚本中试试,我在10楼链接里的脚本验证成功,楼主没有给我INI文档,我没法验证
Case $aFitem To $aFitem ;父项目
If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then ;如果父项目勾选,其下所有子项目全选。
$iSitemNumber = Number(_GUICtrlTreeView_GetChildCount($TreeView1, $nMsg))
$Switch = 0
For $i = $nMsg To $nMsg + $iSitemNumber
If $i <> $nMsg And BitAND(GUICtrlRead($i), $GUI_CHECKED) Then $Switch += 1
Next
If $Switch = 0 Then
For $i = $nMsg To $nMsg + $iSitemNumber
GUICtrlSetState($i, $GUI_CHECKED)
Next
EndIf
Else
$iSitemNumber = Number(_GUICtrlTreeView_GetChildCount($TreeView1, $nMsg))
For $i = $nMsg To $nMsg + $iSitemNumber
GUICtrlSetState($i, $GUI_UNCHECKED)
Next
EndIf
ContinueCase 我反复测试了N次,在XP里没有发现楼主说的那个问题,而且不需要点击“+”“-”直接点击项目文本也没问题。
看来问题出在WIN7,我还没试。 本帖最后由 蜘蛛抱蛋 于 2010-12-19 11:07 编辑
回复 14# 水木子
我也出现同样的情况,不过用13楼的方法解决了。我用的是xp sp3
页:
[1]
2