hzxymkb 发表于 2010-3-20 10:35:43

TreeView相关的问题!







像这种效果怎么做?就是点一下TreeView里的分类,右边显示相应的功能!

netegg 发表于 2010-3-20 11:18:25

自己不想直接到这要代码呀,这个又不难,安装目录的example文件夹里有例子

menfan 发表于 2010-3-20 11:20:50

老问题哦呵呵

水木子 发表于 2010-3-20 11:55:13

本帖最后由 水木子 于 2010-3-20 12:08 编辑

可以注册TreeView的事件吧!

hzxymkb 发表于 2010-4-12 11:09:19

还没有解决吧!再顶起来看看!

水木子 发表于 2010-4-12 19:52:06

这么久了问题还没解决吗?

看看吧!如果项目多,可以用数组操作。#include <GuiTreeView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)
$hGUI = GUICreate("Treeview", 600, 450)
$Treeview = GUICtrlCreateTreeView(5, 5, 180, 440, $iStyle, $WS_EX_CLIENTEDGE)

$Fonts1 = GUICtrlCreateTreeViewItem("项目1", $Treeview)
$Font11 = GUICtrlCreateTreeViewItem("项目1-1", $Fonts1)
$Font12 = GUICtrlCreateTreeViewItem("项目1-2", $Fonts1)
$Font13 = GUICtrlCreateTreeViewItem("项目1-3", $Fonts1)
GUICtrlSetState($Fonts1, $GUI_EXPAND)

$Fonts2 = GUICtrlCreateTreeViewItem("项目2", $Treeview)
$Font21 = GUICtrlCreateTreeViewItem("项目2-1", $Fonts2)
$Font22 = GUICtrlCreateTreeViewItem("项目2-2", $Fonts2)
$Font23 = GUICtrlCreateTreeViewItem("项目2-3", $Fonts2)
GUICtrlSetState($Fonts2, $GUI_EXPAND)

$Fonts3 = GUICtrlCreateTreeViewItem("项目3", $Treeview)
$Font31 = GUICtrlCreateTreeViewItem("项目3-1", $Fonts3)
$Font32 = GUICtrlCreateTreeViewItem("项目3-2", $Fonts3)
$Font33 = GUICtrlCreateTreeViewItem("项目3-3", $Fonts3)
GUICtrlSetState($Fonts3, $GUI_EXPAND)

$Fonts4 = GUICtrlCreateTreeViewItem("项目4", $Treeview)
$Font41 = GUICtrlCreateTreeViewItem("项目4-1", $Fonts4)
$Font42 = GUICtrlCreateTreeViewItem("项目4-2", $Fonts4)
$Font43 = GUICtrlCreateTreeViewItem("项目4-3", $Fonts4)
GUICtrlSetState($Fonts4, $GUI_EXPAND)

$Label1 = GUICtrlCreateLabel("", 350, 150, 200, 24)
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
        Switch GUIGetMsg()
                Case - 3
                        Exit
                Case $Font11, $Font12, $Font13, $Font21, $Font22, $Font23, $Font31, $Font32, $Font33, $Font41, $Font42, $Font43
                        $Text = _GUICtrlTreeView_GetText($Treeview, _GUICtrlTreeView_GetSelection($Treeview))
                        GUICtrlSetData($Label1, $Text)
        EndSwitch
WEnd

hzxymkb 发表于 2010-4-13 10:23:23

哈哈!高手终于出手了!谢谢了!

hzxymkb 发表于 2010-4-13 10:24:20

回复 2# netegg
我找了一次!没有找到!

水木子 发表于 2010-4-13 10:55:19

回复 7# hzxymkb
呵呵!什么高手啊!还不是只菜鸟!
只是你的问题比较简单而已。
高手?还早着呢!

netegg 发表于 2010-4-13 11:38:02

回复 8# hzxymkb

{autoit3dir}\Examples\GUI\Advanced\treeview.au3

hzxymkb 发表于 2010-4-13 12:15:39

回复 10# netegg
谢谢了哈!

digibread 发表于 2010-5-7 00:22:53

我遇到的问题和楼主差不多,不过我的树形菜单的内容是从ini文件中读出来的,也就是说item数量不定。从例子上看来每个item都有一个变量与之对应(楼上的Font1……),但我是动态的,不知如何操作?
谢谢

netegg 发表于 2010-5-7 06:49:57

本帖最后由 netegg 于 2010-5-7 06:52 编辑

我遇到的问题和楼主差不多,不过我的树形菜单的内容是从ini文件中读出来的,也就是说item数量不定。从例子上 ...
digibread 发表于 2010-5-7 00:22 http://www.autoitx.com/images/common/back.gif

用while循环
如果用iniread...读取的话再加上记得没错的话,每层读取,都会是下一层的父项数组,元素是项目个数,定义循环添加的操作就行了

digibread 发表于 2010-5-7 15:03:57

谢谢,我现在遇到的问题是树状结构出来后,如何为每个item绑定click事件?item是动态循环出来的,上面代码中的这段# Case $Font11, $Font12, $Font13, $Font21, $Font22, $Font23, $Font31, $Font32, $Font33, $Font41, $Font42, $Font43
#                         $Text = _GUICtrlTreeView_GetText($Treeview, _GUICtrlTreeView_GetSelection($Treeview))
#                         GUICtrlSetData($Label1, $Text)Case后面是定死的,而我现在是动态的,那么Case后面该如何写?

谢谢

lynfr8 发表于 2010-5-8 22:44:28

楼上,在你另一帖子已经跟帖
应该能解决你的问题
页: [1] 2
查看完整版本: TreeView相关的问题!