Private Sub Command11_Click()
Dim i As Integer
For i = 1 To ListView1.ListItems.Item
SaveINI "list", CStr(Format(i - 1, "000")), ListView1.ListItems.Item(i - 1), App.Path & "\st.ini"
Next i
SaveINI "ListCount", "Count", ListView1.ListItems.Item, App.Path & "\st.ini"
Command11.Enabled = False
End Sub为什么不对呢,错在哪呢?总是说.Item参数不可选。

解决方案 »

  1.   

    ..., ListView1.ListItems.Item(i), ... '<-集合的起始下标是1'
      

  2.   

    Dim i As Integer
    For i = 1 To ListView1.ListItems.Count
    SaveINI "list", CStr(Format(i, "000")), ListView1.ListItems.Item(i), App.Path & "\st.ini"
    Next i
    SaveINI "ListCount", "Count", ListView1.ListItems.Count, App.Path & "\st.ini"
    Command11.Enabled = False自己比较一下区别
      

  3.   

    谢谢楼上二位的回复,可问题是不能保存ListView1.ListItems的数值。为了更详细描述问题,我列出ListView1.ListItems列表里的内容。Private Sub Command9_Click()
    With ListView1.ListItems.Add        '添加新记录
        .SubItems(1) = Text5.Text       '第1列内容
        .SubItems(2) = Text1.Text       '第2列内容
        .SubItems(3) = Text2.Text       '第3列内容
        .SubItems(4) = Text3.Text       '第4列内容
        .SubItems(5) = Text8.Text       '第5列内容
    End With
    End Sub以上为添加的数值内容。
    就是把上面的那些全部定入INI文件里。
    如果按楼上二位的帮助,INI文件里只有以下内容:
    [list]
    000=
    [ListCount]
    Count=1
      

  4.   


    Private Sub Command11_Click() '写入INI文件
    Dim i As Integer
    For i = 1 To ListView1.ListItems.Count
    SaveINI "list", CStr(Format(i - 1, "000")), ListView1.ListItems.Count(i - 1), App.Path & "\st.ini"
    Next i
    SaveINI "ListCount", "Count", ListView1.ListItems.Count, App.Path & "\st.ini"
    Command11.Enabled = False
    End Sub
    这样还是不行,望高手指教。
      

  5.   

    你说的错误".Item参数不可选。",是因为你这一句对ListItems引用Item属性时未加参数,请注意此属性的定义:
    Property Item(Index) As ListItem
        只读
        MSComctlLib.ListItems 的成员
        Returns a specific item of a Collection object either by position or by key.而你未加参数:
    SaveINI "ListCount", "Count", ListView1.ListItems.Item, App.Path & "\st.ini"
    1楼还指出你一处错误,你的这一句引用了0索引,而那个ListItems是集合,索引下界应是1!!!
    SaveINI "list", CStr(Format(i - 1, "000")), ListView1.ListItems.Item(i - 1), App.Path & "\st.ini"
    所以你这代码应该还会报一个错:实时错误: 35600
    索引超出边界另外,楼主还可再看看这种写法:    Dim item As ListItem
        For Each item In ListView1.ListItems
            MsgBox item.Text
        Next item
      

  6.   


    2楼让你比较区别了啊,你的Item(i-1)他改成了Item(i)呀,另外你怎么搞出来Count(i - 1)这种莫名其妙的东西啊,楼主不要瞎碰啊,注意看帮助啊
      

  7.   


    复制错了,如果只用Item(i),写不了多项值数
      

  8.   

    各位高手,帮帮忙呀,另觅高见啦,就是怎么将下列代码的内容写入一个ini文件中,并能读取到这个listView1中。With ListView1.ListItems.Add        '添加新记录
        .SubItems(1) = Text5.Text       '第1列内容
        .SubItems(2) = Text1.Text       '第2列内容
        .SubItems(3) = Text2.Text       '第3列内容
        .SubItems(4) = Text3.Text       '第4列内容
        .SubItems(5) = Text8.Text       '第5列内容
    End With
      

  9.   

    不要急啦,你这是写二级树状的数据,或者更准确的是表格状的数据啦,主要是自己定义好格式啦,我觉得你最好写到XML文件中,实在要往INI中写的话,你可每个section存一个listitem的数据啦,也就是说每个section中的各key用来存你各个SubItems()值
      

  10.   

    q多谢了,我还是直接用list吧,省事。再说功能要求也不大。