gogo023 发表于 2009-2-23 18:08:03

ListView读取多行或跳行

用ListView怎么读取所选择的几行,或是跳选的几行的数据。
如图:

[ 本帖最后由 gogo023 于 2009-2-24 17:06 编辑 ]

gogo023 发表于 2009-2-23 21:32:24

怎么还没有人帮我解决啊?
三恨兄快来吧。。。。。。
:face (18):

sxd 发表于 2009-2-23 22:54:05

历遍 获取选中状态

gogo023 发表于 2009-2-23 23:08:58

原帖由 sxd 于 2009-2-23 22:54 发表 http://www.autoitx.com/images/common/back.gif
历遍 获取选中状态

重要的是例子,或是什么函数语句。

cnsnc 发表于 2009-2-23 23:17:02

_GUICtrlListView_GetSelectedIndices可以吗?

大绯狼 发表于 2009-2-23 23:26:39

哪里这么麻烦
_GUICtrlListView_GetSelectedIndices就OK

gogo023 发表于 2009-2-23 23:28:59

回复 5# cnsnc 的帖子

不行,不行。
:face (2):

cnsnc 发表于 2009-2-23 23:33:38

....................
_GUICtrlListView_GetSelectedIndices返回的是带分隔符"|"的字符串,分成数组后用
_GUICtrlListView_GetItemText等读取就可以了
如果是标准的SysListView32控件,那就不该有问题

sxd 发表于 2009-2-24 00:02:30

嗯 没看到_GUICtrlListView_GetSelectedIndices

如果楼主说不行 把程序放出来 看看 有环境才好测试

btw:我倒觉得思路比例子更重要 至少在我自己遇到问题的时候是这样的

gogo023 发表于 2009-2-24 16:22:24

相关代码

希望各位能给出一个能读取多行,或跳行的方法。
最好能使用 For...To.
如果不能也没关系。
等待中。。。
:face (31):
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("网吧计算机IP列表", 365, 209, 280, 260)
GUISetFont(9, 400, 0, "宋体")
$ListView1 = GUICtrlCreateListView("计算机名|IP地址|MAC地址", 0, 8, 361, 153, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
GUICtrlSendMsg(-1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES,$LVS_EX_GRIDLINES)   ;列表里的线
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 120)
GUICtrlSetBkColor(-1, 0xA6CAF0)
$ListView1_0 = GUICtrlCreateListViewItem("1|192.168.1.1|00:1C:25:08:06:CA", $ListView1)
$ListView1_1 = GUICtrlCreateListViewItem("2|192.168.1.2|00:1C:25:08:5E:4E", $ListView1)
$ListView1_2 = GUICtrlCreateListViewItem("3|192.168.1.3|00:1C:25:08:5E:4F", $ListView1)
$ListView1_3 = GUICtrlCreateListViewItem("4|192.168.1.4|00:1C:25:08:8E:4E", $ListView1)
$ListView1_4 = GUICtrlCreateListViewItem("5|192.168.1.5|00:1C:25:08:5E:DC", $ListView1)
$ListView1_5 = GUICtrlCreateListViewItem("6|192.168.1.6|00:1C:25:07:54:FF", $ListView1)
$ListView1_6 = GUICtrlCreateListViewItem("7|192.168.1.7|00:1C:25:6C:96:AE", $ListView1)
$ListView1_7 = GUICtrlCreateListViewItem("8|192.168.1.8|00:1C:25:6C:97:28", $ListView1)
$Button1 = GUICtrlCreateButton("读取", 280, 176, 75, 25, 0)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

sxd 发表于 2009-2-24 16:51:09

_GUICtrlListView_GetSelectedIndices 不是可以的么?
Case $Button1
                        $Selected = _GUICtrlListView_GetSelectedIndices($ListView1, 1)
                        For $I = 1 To $Selected
                                $SelectedItem = _GUICtrlListView_GetItemTextString($ListView1, $Selected[$I])
                                MsgBox(0, 0, $SelectedItem)
                        Next

gogo023 发表于 2009-2-24 17:06:12

OK

多谢,我用的是
_GUICtrlListView_GetItemTextString($ListView, Number(_GUICtrlListView_GetSelectedIndices($ListView)))
难怪不行。。
还有就是我不怎么会用 FOR。。TO
呵呵。。

cnsnc 发表于 2009-2-24 17:10:14

没注意问题已经解决,删了

[ 本帖最后由 cnsnc 于 2009-2-24 17:14 编辑 ]

seebbs 发表于 2009-6-22 00:40:13

:face (26):学习了

zhch3022 发表于 2009-8-7 11:41:43

不知道可否选择单个值??类似于表格的单元格???
页: [1] 2
查看完整版本: ListView读取多行或跳行