Private Sub Command3_Click()
    Dim i, ii As Integer
    ii = ListView2.ListItems.Count
    
    For i = 1 To ii
        'If ListView1.ListItems(i).Checked = True Then
            ListView2.ListItems.Remove (ListView2.SelectedItem.Index)
        'End If
    Next
    Exit Sub
End Sub
这样全删除了
Private Sub Command3_Click()
    Dim i, ii As Integer
    ii = ListView2.ListItems.Count
    
    For i = 1 To ii
        If ListView2.ListItems(i).Checked = True Then
            'ListView2.ListItems.Remove (ListView2.SelectedItem.Index)            ListView2.ListItems.Remove (ListView2.ListItems(i).Index)        
    Exit Sub
End Sub
这样有会索引出界

解决方案 »

  1.   

    Private Sub Command3_Click()
    Dim colRemove As New Collection
    Dim lngOffset As Long
        Dim i, ii As Integer
        ii = ListView2.ListItems.Count
        lngOffset = 0
        For i = 1 To ii
            'If ListView1.ListItems(i).Checked = True Then
                colRemove.Add ListView2.SelectedItem.Index
            'End If
        Next
        
        For i = 1 To colRemove.Count
            ListView2.ListItems.Remove colRemove(i) - lngOffset
            lngOffset = lngOffset + 1
        Next
    End Sub
      

  2.   

    回yunyu97() 谢谢你的回复
    这样还是索引出界
      

  3.   

    回yunyu97() 谢谢你的回复
    这样还是索引出界
    不知VB里有没有象delphi一样的downto 从大到小的去执行
    for i:=10 downto 0 do
    begin
      //循环体
    end
      

  4.   

    已解决,给不会同样问题的人一个参考
    Private Sub Command3_Click()
        Dim i, ii As Integer
        Dim bb As Boolean
        ii = ListView2.ListItems.Count
        
        For i = ii To 1 Step -1
            If ListView2.ListItems(i).Checked = True Then
                ListView2.ListItems.Remove (ListView2.ListItems(i).Index)
            End If
        Next i
        Exit Sub
    End Sub