itzyx 发表于 2021-11-12 09:04:15

【已解决】请教,关于控件TreeList1 点击的疑问

本帖最后由 itzyx 于 2021-11-12 12:43 编辑

#include <GuiTreeView.au3>
local $handle=WinActivate('目标窗口')
$Whandle = ControlGetHandle($handle, "", "TreeList1")
ControlTreeView($handle,"", "TreeList1",'Select','#0|#0')   ; ControlTreeView 选取#0|#0,#0为第一项,获得选取项目的句柄
$hItem=_GUICtrlTreeView_GetSelection($Whandle)
_GUICtrlTreeView_ClickItem($Whandle , $hItem, "left", False, 1)各位大佬,现在有一个树状列表,有一个主项 还有两个子项,我可以通过上面的代码,实现点击子项1 的效果,但是只要修改 '#0|#0' 为 '#0|#1',虽然实现了点击子项2的效果,但是每次子项1 莫名其妙就消失了,这是为什么呢?希望大佬能够指点一下,万分感谢!

sh1536 发表于 2021-11-12 11:13:39

是要这样的效果吗?


itzyx 发表于 2021-11-12 11:28:08

sh1536 发表于 2021-11-12 11:13
是要这样的效果吗?

是的,但是我每次点击子项2,子项1 就消失了很奇怪

sh1536 发表于 2021-11-12 11:37:01

是不是和你的这个文件有关系,用帮助文件没问题

afan 发表于 2021-11-12 11:40:13

“TreeList1” 应该不是标准的 TreeView32 控件,那 ControlTreeView 就不一定能正常执行。
你可以手动选择项,再用 _GUICtrlTreeView_ClickItem() 点击试试,依次排查问题所在。

itzyx 发表于 2021-11-12 11:44:36

sh1536 发表于 2021-11-12 11:37
是不是和你的这个文件有关系,用帮助文件没问题

嗯嗯,我试了,用帮助文件确实可以,没出错。。。。
就是不知道我的这个点击,不用鼠标点击的话,用其他方法能不能行,我先试试吧,感谢解答!

itzyx 发表于 2021-11-12 11:45:20

afan 发表于 2021-11-12 11:40
“TreeList1” 应该不是标准的 TreeView32 控件,那 ControlTreeView 就不一定能正常执行。
你可以手动选 ...

好的感谢A大提供思路

itzyx 发表于 2021-11-12 12:40:19

本帖最后由 itzyx 于 2021-11-12 12:43 编辑

感谢A大提供的思路,已成功解决问题,代码如下:
#include <GuiTreeView.au3>
local $handle=WinActivate('目标窗口')
$Whandle = ControlGetHandle($handle, "", "TreeList1")
ControlTreeView($handle,"", "TreeList1",'Select','#0') ;ControlTreeView 选取 #0(主项)
$hItem=_GUICtrlTreeView_GetSelection($Whandle);获得选取项目(主项)的句柄
$hItem1=_GUICtrlTreeView_GetFirstChild ($Whandle,$hItem) ;返回主项的第一子项句柄$hItem2=_GUICtrlTreeView_GetNextChild($Whandle,$hItem1);返回主项的下一个子项句柄(子项2)_GUICtrlTreeView_ClickItem($Whandle , $hItem2, "left", False, 1) ;点击子项2 (不知道为啥我插入代码,总是少一段,只能以文本形式呈现了)
页: [1]
查看完整版本: 【已解决】请教,关于控件TreeList1 点击的疑问