找回密码
 加入
搜索
查看: 4987|回复: 10

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

  [复制链接]
发表于 2012-1-12 00:06:52 | 显示全部楼层 |阅读模式
本帖最后由 saigi 于 2012-1-14 21:51 编辑

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

非常感谢

本帖子中包含更多资源

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

×
发表于 2012-1-12 00:14:05 | 显示全部楼层
本帖最后由 tsys 于 2012-1-12 00:15 编辑

传送门:http://www.autoitx.com/forum.php ... ;highlight=listview
把这个帖子及回复仔细都看一遍,你就会了
发表于 2012-1-12 08:35:51 | 显示全部楼层
楼上正解。。呵呵
发表于 2012-1-12 12:52:49 | 显示全部楼层
很好的学习资料啊
 楼主| 发表于 2012-1-12 21:04:31 | 显示全部楼层
感谢tsys
我找到答案了
$A = _GUICtrlListView_GetEditControl($ListView[1])
$B = GUICtrlRead($A)
取得控件句柄后,就可以读出在输入状态时的值了~

另外那篇文章是用创一个新的输入框来处理,也是另一种思路
感谢各位大大
 楼主| 发表于 2012-1-13 20:07:34 | 显示全部楼层
抱歉~
先前是误打误撞~5楼的方法行不通
似乎一个是返回句柄,一个是读ID
看来还是要用2楼的方式
发表于 2012-1-14 12:15:31 | 显示全部楼层
2楼正解。。呵呵
发表于 2012-1-14 13:29:09 | 显示全部楼层
抱歉~
先前是误打误撞~5楼的方法行不通
似乎一个是返回句柄,一个是读ID
看来还是要用2楼的方式
saigi 发表于 2012-1-13 20:07



    _GUICtrlListView_GetEditControl() 返回句柄后可以试试 _GUICtrlEdit_GetText() 读取
 楼主| 发表于 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[2]                                                                                      
Local $Item1[7]
Local $ItemA , $ItemB
Local $Set1[10]=["A","B","C","D","E","F","G"]

Opt("GUIOneventMode",1)
$WinMain = GUICreate("Test", 375, 530, -1, -1,WinGetHandle("Program Manager"))
$ListView[1] = GUICtrlCreateListView("", 15, 40, 340, 442,$LVS_EDITLABELS,$LVS_EX_GRIDLINES+$LVS_EX_FULLROWSELECT)
_GUICtrlListView_AddColumn($ListView[1], "001", 200, 0)
For $NumA=0 To 6 Step 1
  $Item1[$NumA]=GUICtrlCreateListViewItem($Set1[$NumA], $ListView[1]) 
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[1], $ItemId)
  $ItemA =_GUICtrlListView_GetEditControl($ListView[1])
EndFunc

Func GUICtrlMsg()
      Exit
EndFunc

本帖子中包含更多资源

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

×
发表于 2012-1-14 21:12:11 | 显示全部楼层
不需要获取句柄,
GUICtrlSetData($LABEL2, ControlGetText($WinMain, '', 'Edit1'))
 楼主| 发表于 2012-1-14 21:48:41 | 显示全部楼层
原来如此!试成功了
感谢afan!!解决我多日的疑问
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 01:29 , Processed in 0.108798 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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