dim Items as ListItem
While Not adorecord.EOF
        'name
        If IsNull(adorecord.Fields("name").Value) Then
        Else
            set Items=lvicon.ListItems.Add( , , Trim(adorecord.Fields("name").Value))
        End If
        'Icon Path
         If IsNull(adorecord.Fields("picpath").Value) Then
        Else
            Items.SubItems(1) = Trim(adorecord.Fields("picpath").Value)
        End If
        adorecord.MoveNext
    Wend'这样行吗?

解决方案 »

  1.   

    lvicon.ListItems(1).SubItems(1) = Trim(adorecord.Fields
    '始终是对第一行操作
    换成lvicon.ListItems(lvicon.ListItems.Count).SubItems(1) = Trim(adorecord.Fields
      

  2.   

    好了,好了,谢谢linao了。
    原因就是因为我老对第一行操作,现在揭帖
    linao:40分
    另外两位5分
    谢谢咯。
      

  3.   

    其实,我刚才又研究了一下,我得做法也没有错,如果sort是降序排列得话,没有问题,但是如果是升序排列就错了,同样
    lvicon.ListItems(lvicon.ListItems.Count).SubItems(1) = Trim(adorecord.Fields)
    这句话对于升序排列没有问题,但是,对于降序却同样存在问题,我这样分析应该对吧?
      

  4.   

    OH!问题终于被我解决了,原来还是出在排序上,如果我先前对listview得sort进行排序得话,那么当我插入一个新得item的时候,它会按照排序去插入,可是因为lvicon.ListItems(1)得存在,所以,此处就会有矛盾,因此就会造成有些数据不能显示出来,其实,是插入别得记录里了。
    所以,最好得办法是用如下方法,如果不考虑排序得话:
        i = Lvnename.ListItems.count
        i = i + 1
        Lvnename.ListItems.Add i, , strnename
        Lvnename.ListItems(i).SubItems(1) = strip
    这样就可以解决问题了。