找回密码
 加入
搜索
查看: 6025|回复: 16

ListView读取多行或跳行

[复制链接]
发表于 2009-2-23 18:08:03 | 显示全部楼层 |阅读模式
用ListView怎么读取所选择的几行,或是跳选的几行的数据。
如图:

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

本帖子中包含更多资源

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

×
 楼主| 发表于 2009-2-23 21:32:24 | 显示全部楼层
怎么还没有人帮我解决啊?
三恨兄快来吧。。。。。。
发表于 2009-2-23 22:54:05 | 显示全部楼层
历遍 获取选中状态
 楼主| 发表于 2009-2-23 23:08:58 | 显示全部楼层
原帖由 sxd 于 2009-2-23 22:54 发表
历遍 获取选中状态


重要的是例子,或是什么函数语句。
发表于 2009-2-23 23:17:02 | 显示全部楼层
_GUICtrlListView_GetSelectedIndices可以吗?
发表于 2009-2-23 23:26:39 | 显示全部楼层
哪里这么麻烦
_GUICtrlListView_GetSelectedIndices就OK
 楼主| 发表于 2009-2-23 23:28:59 | 显示全部楼层

回复 5# cnsnc 的帖子

不行,不行。
发表于 2009-2-23 23:33:38 | 显示全部楼层
....................
_GUICtrlListView_GetSelectedIndices返回的是带分隔符"|"的字符串,分成数组后用
_GUICtrlListView_GetItemText等读取就可以了
如果是标准的SysListView32控件,那就不该有问题
发表于 2009-2-24 00:02:30 | 显示全部楼层
嗯 没看到_GUICtrlListView_GetSelectedIndices

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

btw:我倒觉得思路比例子更重要 至少在我自己遇到问题的时候是这样的
 楼主| 发表于 2009-2-24 16:22:24 | 显示全部楼层

相关代码

希望各位能给出一个能读取多行,或跳行的方法。
最好能使用 For...To.
如果不能也没关系。
等待中。。。

#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
发表于 2009-2-24 16:51:09 | 显示全部楼层
_GUICtrlListView_GetSelectedIndices 不是可以的么?
Case $Button1
                        $Selected = _GUICtrlListView_GetSelectedIndices($ListView1, 1)
                        For $I = 1 To $Selected[0]
                                $SelectedItem = _GUICtrlListView_GetItemTextString($ListView1, $Selected[$I])
                                MsgBox(0, 0, $SelectedItem)
                        Next
 楼主| 发表于 2009-2-24 17:06:12 | 显示全部楼层

OK

多谢,我用的是
_GUICtrlListView_GetItemTextString($ListView, Number(_GUICtrlListView_GetSelectedIndices($ListView)))
难怪不行。。
还有就是我不怎么会用 FOR。。TO
呵呵。。
发表于 2009-2-24 17:10:14 | 显示全部楼层
没注意问题已经解决,删了

[ 本帖最后由 cnsnc 于 2009-2-24 17:14 编辑 ]
发表于 2009-6-22 00:40:13 | 显示全部楼层
学习了
发表于 2009-8-7 11:41:43 | 显示全部楼层
不知道可否选择单个值??类似于表格的单元格???
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 23:44 , Processed in 0.093553 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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