saigi 发表于 2012-1-12 00:06:52

[已解决]请问将ListView改为可编辑的状态,如何获取使用者输入的文字?

本帖最后由 saigi 于 2012-1-14 21:51 编辑

我设定了
_GUICtrlListView_EditLabel($ListView, 0)
成功将$ListView的第1项改为可编辑的状态
但Enter后不会保存
请问如何获取使用者输入的文字?

非常感谢

tsys 发表于 2012-1-12 00:14:05

本帖最后由 tsys 于 2012-1-12 00:15 编辑

传送门:http://www.autoitx.com/forum.php?mod=viewthread&tid=28027&highlight=listview
把这个帖子及回复仔细都看一遍,你就会了

menfan1 发表于 2012-1-12 08:35:51

楼上正解。。呵呵

sgj584520 发表于 2012-1-12 12:52:49

很好的学习资料啊

saigi 发表于 2012-1-12 21:04:31

感谢tsys
我找到答案了
$A = _GUICtrlListView_GetEditControl($ListView)
$B = GUICtrlRead($A)
取得控件句柄后,就可以读出在输入状态时的值了~

另外那篇文章是用创一个新的输入框来处理,也是另一种思路
感谢各位大大

saigi 发表于 2012-1-13 20:07:34

抱歉~
先前是误打误撞~5楼的方法行不通
似乎一个是返回句柄,一个是读ID
看来还是要用2楼的方式

xshaixtt 发表于 2012-1-14 12:15:31

2楼正解。。呵呵

afan 发表于 2012-1-14 13:29:09

抱歉~
先前是误打误撞~5楼的方法行不通
似乎一个是返回句柄,一个是读ID
看来还是要用2楼的方式
saigi 发表于 2012-1-13 20:07 http://www.autoitx.com/images/common/back.gif


    _GUICtrlListView_GetEditControl() 返回句柄后可以试试 _GUICtrlEdit_GetText() 读取

saigi 发表于 2012-1-14 19:57:09

本帖最后由 saigi 于 2012-1-14 19:59 编辑

_GUICtrlListView_GetEditControl() 返回句柄后 _GUICtrlEdit_GetText()读取
试了后也读不到,不知道是哪边出了问题
附上原始档#include <Array.au3>
#include <EditConstants.au3>
#Include <GuiEdit.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>

Local $ListView                                                                                    
Local $Item1
Local $ItemA , $ItemB
Local $Set1=["A","B","C","D","E","F","G"]

Opt("GUIOneventMode",1)
$WinMain = GUICreate("Test", 375, 530, -1, -1,WinGetHandle("Program Manager"))
$ListView = GUICtrlCreateListView("", 15, 40, 340, 442,$LVS_EDITLABELS,$LVS_EX_GRIDLINES+$LVS_EX_FULLROWSELECT)
_GUICtrlListView_AddColumn($ListView, "001", 200, 0)
For $NumA=0 To 6 Step 1
$Item1[$NumA]=GUICtrlCreateListViewItem($Set1[$NumA], $ListView)
Next

GUISetOnEvent($GUI_EVENT_CLOSE, "GUICtrlMsg")
For $NumA=0 To 6 Step 1
GUICtrlSetOnEvent($Item1[$NumA],"SendInsAA")   
Next

$LABEL1 = GUICTRLCREATELABEL("", 300, 20, 50, 15)
$LABEL2 = GUICTRLCREATELABEL("", 100, 20, 50, 15)
GUISetState(@SW_SHOW)

While 1
Sleep(500)
$ItemB = _GUICtrlEdit_GetText($ItemA)
GUICtrlSetData($LABEL1,$ItemA)
GUICtrlSetData($LABEL2,$ItemB)
WEnd

Func SendInsAA()
$ItemId = _ArraySearch($Item1, @GUI_CtrlId)
_GUICtrlListView_EditLabel($ListView, $ItemId)
$ItemA =_GUICtrlListView_GetEditControl($ListView)
EndFunc

Func GUICtrlMsg()
      Exit
EndFunc

afan 发表于 2012-1-14 21:12:11

不需要获取句柄,GUICtrlSetData($LABEL2, ControlGetText($WinMain, '', 'Edit1'))

saigi 发表于 2012-1-14 21:48:41

原来如此!试成功了
感谢afan!!解决我多日的疑问
页: [1]
查看完整版本: [已解决]请问将ListView改为可编辑的状态,如何获取使用者输入的文字?