happytc 发表于 2011-3-15 08:20:12

TreeView怎么象改文件名那样改Item的名

就是两次单击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

happytc 发表于 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)

netegg 发表于 2011-3-15 12:18:07

回复 2# happytc
#Include <GuiTreeView.au3>
_GUICtrlTreeView_InsertItem

happytc 发表于 2011-3-15 12:35:18

回复 3# netegg

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

1楼的问题有解呢?

hkc5599 发表于 2011-3-17 11:24:31

good example .... thank you!!!!!!!!!
页: [1]
查看完整版本: TreeView怎么象改文件名那样改Item的名