今天同事编程碰到一个奇怪的问题:实时错误:35600 索引超出边界。语句执行到:ListView1.SelectedItem.ListSubItems(1) = "sdfsdf" 几个概念:SubItems 属性 返回或设置一个字符串(子项目)数组,它代表 ListView 控件中 ListItem 对象的数据。ListItem 对象可包含任意数目的关联项目数据字符串(子项目),但每个 ListItem 对象子项目数目必须相同。每个子项目都定义了相关的列标头。无法直接向子项目数组添加元素。使用 ColumnHeaders 集合中的 Add 方法添加子项目 ColumnHeader 对象是 ListView 控件中包含标头文字的项目。ColumnHeaders 集合包含一个或多个 ColumnHeader 对象。 ListSubItems属性 返回对ListSubItem对象的ListSubItems集合的一个引用。 Dim si As ListSubItem 如果SubItems不先赋值,那么ListSubItems(1) = "sdfsdf" 就会报错,此时监视 SelectedItem. ListSubItems的COUNT=0;如果先赋值,不论是ListItems.Add还是SubItems(1) = "" ListSubItem对象代表ListView控件的一个子项。ListSubItem对象替代了以前版本的ListView控件中的SubItems字符串数组 真是莫名其妙 SubItems 取决于 ColumnHeaders 的出现 ListSubItem 是否存在,以及其数目都取决于 ColumnHeader 对象是否存在、及其数目。也就是说,如果没有 ColumnHeader 对象,就不能创建任何 ListSubItem 对象。进一步说,ColumnHeader 对象的数目,决定了可为 ListItem 对象设置的 ListSubItem 对象的数目。ListSubItem 的数目总是比 ColumnHeader 对象的数目少。这是因为第一个 ColumnHeader 对象总是与 ListItem 对象的 Text 属性相关联, 字体:大 中 小 |
![]() | 永久地址 http://www.shengfang.org/blog/p/VB6listviewSubItems.php |
![]() | 引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1118044562 |
2005年6月6日15:56星期一 [Dev开发]



呵呵要


