vb6.0 如何改变listview1.SelectedItem.Index的值

生成一个有内容的listview表之后,listview1.selecteditem.index的值自动变成1无论如何改不了listview1.listitems(1).... 生成一个有内容的listview表之后,listview1.selecteditem.index的值自动变成1
无论如何改不了
listview1.listitems(1).selected=false
这条语句是不行的
看上去明明什么都没有选择
谁能告诉我怎么办啊 0-0抓狂了
展开
 我来答
tianqing20wen

2014-07-31 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5140万
展开全部
for i = 1 to 10

if listview1.listitems(i).selected=true then
'你要做的事 放弃使用.selecteditem.index 多行选中时,你让listview一个index
属性返回你一个数组么?明显不可能
end if

next
追问
没有明白你说的意思
"多行选中时",首先这根本就不是多行选中,只有listview1.listitems(1).selected是true,其他都是false

其次,所有的值全部手动赋值成false之后,还是显示1

另外,你给的代码只做了一个判断,根本米有进行任何操作啊

还是我理解不对?
追答
按我理解 listview1.selecteditem.index在你代码中 应该是其判断用户选中哪一行,然后你提取这一行的数据 再进行你之后的操作
listview1控件在初始化时,就给你选中第一行,让你程序无法真实判断这是用户所选,你就想用
listview1.listitems(1).selected=false 来改变第一行的选中状态,可这个控件的特点就是它item序号从1开始 没有0,也不像listbox有-1,来判断用户没有选中行。listview1.selecteditem.index 鼠标点选哪一行 数值就是几 不管你是否选中这一行(默认情况下 选中行背景蓝色视为选中,同一行点击第一次为蓝,第二次还原变白,加虚框,表示不选中)

所以listview要判断用户选中是哪一行,只能循环列表所有项目,用listview1.listitems(i).selected 是否为true来判断。是true再执行你想要操作的代码

listview1.selecteditem.index只能返回一个数值~·当有设置 ListView1.MultiSelect = True 列表可以选择多行时 比如我同时选中第2和3行时 listview1.selecteditem.index 这个无法反馈2和3这2个数值给你。

我给的代码只是给你演示下,我并不知道你选取选中行是想如何处理~~if里面你随便写你想要的代码·~ 单引号 是注解行 应该能看得懂才对吧
落叶l无情
2014-07-31 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1421万
展开全部
listview1.selecteditem.index 表示当前选中行的行数,默认选中第一行,所以,你必须等到listview载入完以后再加上listview1.listitems(1).selected=false
追问
上面已经说了 
listview1.listitems(1).selected=false

这条语句是不行的
你有试成功过么
追答
都说了在listview载入完内容后,加这句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式