找回密码
 加入
搜索
查看: 14549|回复: 31

[AU3基础] 如何实现TreeView更新问题,请高手指点

 火.. [复制链接]
发表于 2014-6-3 22:27:54 | 显示全部楼层 |阅读模式
先运行程序,在不退出的情况下,打开ini文本,删除“手机频道=http://”或者其它,回到界面,点击更新按钮,TreeView得到相应的变化。研究了一天,没有研究出,难道TreeView不能实现这个功能?请高手指点。谢谢

本帖子中包含更多资源

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

×
发表于 2014-6-3 22:50:58 | 显示全部楼层
你是这样读取INI到 treeview控件上的!你重复一变就行了! 不过重复前清空 treeview 里面的内容就行了!
 楼主| 发表于 2014-6-3 23:10:14 | 显示全部楼层
本帖最后由 qsy666888 于 2014-6-3 23:35 编辑

回复 2# f4李文杨
清空用什么函数,大侠,我用guictrlsetdata不行
发表于 2014-6-3 23:48:08 | 显示全部楼层
_GUICtrlTreeView_DeleteAll  用这个函数可以清空!控件里所以信息!多看五帮助就明白了!!

清空后!你再按原来的重复一遍读取INI里的信息就行了!
 楼主| 发表于 2014-6-4 00:02:50 | 显示全部楼层
回复 4# f4李文杨
谢谢大侠,要求是达到了,但感觉上似乎差那么一点点,就是比如我是展开节点的,能够看到子项目,一点更新,还得去点开节点去看子项目,是否删除了,不知道还有没有更好的办法?
发表于 2014-6-4 01:58:51 | 显示全部楼层
_GUICtrlTreeView_Expand 此函数可以搞定!
发表于 2014-6-4 02:01:59 | 显示全部楼层
其实还有更好的方法!就是获取主目录的句丙或ID 如此主目录里内容有变更新话!只接可以更新里面的内容就行了!不用全部清空(这个方法是笨方法!但是也可以用!)!
发表于 2014-6-4 07:50:45 | 显示全部楼层
程序的智能就是人脑的智能
方法笨,就是程序差
 楼主| 发表于 2014-6-4 08:17:16 | 显示全部楼层
回复 7# f4李文杨


    大侠,你说的获取主目录的句丙或ID 如此主目录里内容有变更新话!只接可以更新里面的内容就行了,这个怎么写呢
 楼主| 发表于 2014-6-4 08:18:06 | 显示全部楼层
回复 8# seniors

请问大侠,你有没有更好的方法,请大侠指点一二
发表于 2014-6-4 08:51:52 | 显示全部楼层
我怎么感觉这个问题已经回答过了?难道是我记错了?
发表于 2014-6-4 09:29:33 | 显示全部楼层
f4李文杨
已经回复的很清楚了,怎么写,无非是多看几个TreeView的函数
 楼主| 发表于 2014-6-4 10:14:53 | 显示全部楼层
本帖最后由 qsy666888 于 2014-6-4 11:09 编辑

回复 11# 水木子

是更新的问题,大侠,这个问题好像在坛里还是第一次提出
发表于 2014-6-4 12:40:05 | 显示全部楼层
哎呀!别叫我大侠,我担当不起,在咱们论坛里,高手如云,我只是一只菜鸟。
总之没帮上什么忙,共学习,同进步吧!
发表于 2014-6-4 17:53:02 | 显示全部楼层
这样试试看
#include <ButtonConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
Global $Form1
GUI()
While 1
        Sleep(100)
WEnd
Func GUI()
        Local $ini, $htv, $csname = "class", $hClass = 0
        $Form1 = GUICreate("treeview", 300, 300)
        GUISetOnEvent($GUI_EVENT_CLOSE, "GForm1Close")
        $htv = GUICtrlCreateTreeView(0, 0, 150, 300, -1, $WS_EX_CLIENTEDGE)
        $Button1 = GUICtrlCreateButton("更  新", 216, 208, 67, 25)
        GUICtrlSetOnEvent($Button1, "gengxin")
        GUISetState(@SW_SHOW)
        GUISetState()
        readinfo("data.ini", $htv)
       
EndFunc   ;==>GUI

;Do
;Sleep(10)
;Until GUIGetMsg() = -3
Func readinfo($ini, $htv, $csname = "class", $hClass = 0)
        If Not $hClass Then $hClass = $htv
        $aSec = IniReadSection($ini, $csname)
        If @error Then Return False
        For $i = 1 To $aSec[0][0]
                $child = IniReadSection($ini, $aSec[$i][0])
                If @error Then;频道
                        $hItem = GUICtrlCreateTreeViewItem($aSec[$i][0], $hClass)
                Else;子类
                        $hClass1 = GUICtrlCreateTreeViewItem($aSec[$i][0], $hClass)
                        readinfo($ini, $hClass, $aSec[$i][0], $hClass1)
                EndIf;频道或分类
        Next
        Return True
EndFunc   ;==>readinfo

Func gengxin()
        GUISetState(@SW_HIDE, $Form1)
        GUISetState(@SW_SHOW, $Form1)
        GUI()
EndFunc   ;==>gengxin
Func GForm1Close()
        Exit
EndFunc   ;==>GForm1Close
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 07:46 , Processed in 0.095143 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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