标题:[求助]数组越界的问题
只看楼主
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
结帖率:40%
 问题点数:0 回复次数:4 
[求助]数组越界的问题

这是我的代码:
Private a As Integer
Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged

a = ListView1.SelectedIndices(0) '当前索引值给予a
End Sub
当我点击ListView且行索引发生改变时,总是报错说"其他信息: 指定的参数已超出有效值的范围"
然而当我不在这个事件中实现行索引赋值的问题,却不会出现这个问题
我想知道,在这个事件中怎么实现不了了呢?我哪里错了?如果错了,请给出指示,谢谢

搜索更多相关主题的帖子: 越界 索引 Sub ByVal Private 
2007-01-06 09:39
szmq2
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2006-12-25
得分:0 
索引值0指的是什么东西?listview1中的数据有没有初使化?

2007-01-07 14:48
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
你还没选择,SelectedIndices这个值怎么用??

飘过~~
2007-01-07 15:43
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

在我机器上测试一下,发现作如下修改即可
If lv1.SelectedItems.Count <> 0 Then
a = lv1.SelectedIndices(0)
TextBox1.Text = a
End If

我不加if 和你一样 下标越界

我的理解是 如果是listview原先已经有选中的值了 (因为第一次选中item时,即使不加if也不会出错),这时候选中另外item的话,SelectedIndexChanged 事件被激发了2次,用老vb的观念来看,可以看做是先lostfocus一次, 再getfocus一次,而lost focus那次,你用单步跟踪可以很容易的看到,lv1.SelectedItems.Count = 0!也就是说 原先选中的值被释放了,新item的值还没有被赋予,这个时候SelectedIndices(0)自然就越界了


2007-01-08 10:16
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
得分:0 
谢谢大家的帮忙,我懂了,呵呵

大家一起努力,共同打造未来!!
2007-01-09 19:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114552-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018053 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved