找回密码
 加入
搜索
查看: 3125|回复: 4

[GUI管理] TreeView怎么象改文件名那样改Item的名

[复制链接]
发表于 2011-3-15 08:20:12 | 显示全部楼层 |阅读模式
就是两次单击Item文本后,输入新的名,回车后改为新的输入的名
以下是帮助里的例子,可以两次单击(不是双击)后输入,但怎么让它把输入的更新为新的Item名

#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiTreeView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

$Debug_TV = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()

        Local $hItem, $hImage, $iImage, $hTreeView
        Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
        
        GUICreate("TreeView Add", 400, 300)

        $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
        GUISetState()

        $hImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 110)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 131)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 165)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 168)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 137)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 146)
        _GUICtrlTreeView_SetNormalImageList($hTreeView, $hImage)

        _GUICtrlTreeView_BeginUpdate($hTreeView)
        For $x = 1 To Random(2, 10, 1)
                $iImage = Random(0, 5, 1)
                $hItem = _GUICtrlTreeView_Add($hTreeView, 0, StringFormat("[%02d] New Item", $x), $iImage, $iImage)
                For $y = 1 To Random(2, 10, 1)
                        $iImage = Random(0, 5, 1)
                        _GUICtrlTreeView_AddChild($hTreeView, $hItem, StringFormat("[%02d] New Child", $y), $iImage, $iImage)
                Next
        Next
        _GUICtrlTreeView_EndUpdate($hTreeView)

        ; Loop until user exits
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main
 楼主| 发表于 2011-3-15 08:28:04 | 显示全部楼层
另外,若搞个“增加Item”按纽,点击这个按纽后,怎么让这个增加的TreeViewItem增加在紧接当前被选的Item的后面。象下面这样的,是添加到$ParentItem下所有Item的最(后)下面了,而不是紧领的下面


$NewItemInput = InputBox("TreeView", "New Item", "", "", 300, 20)
_GUICtrlTreeView_BeginUpdate($TreeView)
$SelectItem = _GUICtrlTreeView_GetSelection($TreeView)
$ParentItem = _GUICtrlTreeView_GetPrev($TreeView, $SelectItem)
_GUICtrlTreeView_AddChild($TreeView, $ParentItem, $NewItemInput)
_GUICtrlTreeView_EndUpdate($TreeView)
发表于 2011-3-15 12:18:07 | 显示全部楼层
回复 2# happytc
#Include <GuiTreeView.au3>
_GUICtrlTreeView_InsertItem
 楼主| 发表于 2011-3-15 12:35:18 | 显示全部楼层
回复 3# netegg

谢了,还有这个函数呢,不知道,第一次用au3写TV,不熟悉它有那些函数呢。

1楼的问题有解呢?
发表于 2011-3-17 11:24:31 | 显示全部楼层
good example .... thank you!!!!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-2 02:21 , Processed in 0.084952 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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