颜勇 发表于 2010-12-18 12:22:22

TreeView例子问题

本帖最后由 颜勇 于 2010-12-20 17:12 编辑

此帖已删!

yhxhappy 发表于 2010-12-18 12:35:53

没有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:42

点 - 号收回就不会全部选中

水木子 发表于 2010-12-18 13:20:33

点 - 号收回就不会全部选中
qq342252004 发表于 2010-12-18 13:16 http://www.autoitx.com/images/common/back.gif

是的!

这段代码应该是我后来整理过的,没想到楼主也有哦!

qq342252004 发表于 2010-12-18 13:22:16

是的!

这段代码应该是我后来整理过的,没想到楼主也有哦!
水木子 发表于 2010-12-18 13:20 http://www.autoitx.com/images/common/back.gif
难道你有更新的?分享一下啊。

水木子 发表于 2010-12-18 13:36:40

没有!你这段应该是最新的。

qq342252004 发表于 2010-12-18 13:46:17

没有!你这段应该是最新的。
水木子 发表于 2010-12-18 13:36 http://www.autoitx.com/images/common/back.gif有的话分享一下哦,我那个驱动选择工具都是用你这勾选例子写的。

水木子 发表于 2010-12-18 13:52:16

嗯!这个我知道,如果有一定告诉你!

颜勇 发表于 2010-12-18 17:38:21

本帖最后由 颜勇 于 2010-12-20 17:17 编辑

此帖已删!

mo_shaojie 发表于 2010-12-18 21:28:28

我的怎么没发现这个问题啊?测试正常的啊.看下我发的帖子.
http://www.autoitx.com/forum.php?mod=viewthread&tid=20199&extra=&page=1

颜勇 发表于 2010-12-18 22:29:39

本帖最后由 颜勇 于 2010-12-20 17:17 编辑

回复 10# mo_shaojie


此帖已删!

颜勇 发表于 2010-12-18 22:48:26

本帖最后由 颜勇 于 2010-12-20 17:16 编辑

此贴已删!

yhxhappy 发表于 2010-12-19 00:01:18

本帖最后由 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

水木子 发表于 2010-12-19 10:02:43

我反复测试了N次,在XP里没有发现楼主说的那个问题,而且不需要点击“+”“-”直接点击项目文本也没问题。
看来问题出在WIN7,我还没试。

蜘蛛抱蛋 发表于 2010-12-19 10:47:29

本帖最后由 蜘蛛抱蛋 于 2010-12-19 11:07 编辑

回复 14# 水木子

我也出现同样的情况,不过用13楼的方法解决了。我用的是xp sp3
页: [1] 2
查看完整版本: TreeView例子问题