有这么一道题,现有一个列表框,其中里面有五项内容,还有一个按钮,在列表框中选择N项后,点击按钮,列表框中被选中的项就被删除,剩下未选中的内容。
这应该怎么写代码呢?我想了好一会都没有做出来,请这里的高手帮忙写出代码,谢谢!

解决方案 »

  1.   


    Private Sub Command1_Click()
    For i = List1.ListCount - 1 To 0 Step -1
    If List1.Selected(i) Then List1.RemoveItem i
    Next
    End SubPrivate Sub Form_Load()
    Dim i As Integer
    For i = 1 To 5
    List1.AddItem String(5, Chr(i + 64))
    Next
    End Sub
      

  2.   

    list1 的multiselect 设为 1
      

  3.   

    我用:
    Private Sub Command1_Click()
    'For i = List1.ListCount - 1 To 0 Step -1
    For i = 0 To List1.ListCount - 1
    If List1.Selected(i) Then List1.RemoveItem i
    Next
    End SubPrivate Sub Form_Load()
    Dim i As Integer
    For i = 1 To 5
    List1.AddItem String(5, Chr(i + 64))
    Next
    End Sub这样就会出错,请问这是为什么,我感觉我这里有些比较重要的东西没有搞明白。
      

  4.   

    i的下限大于上限导致错误,试试就知道了:
    Private Sub Command1_Click()
    On Error Resume Next
    Dim i As Integer
    For i = 0 To List1.ListCount - 1
    If List1.Selected(i) Then List1.RemoveItem i: MsgBox "i=" & i & vbCrLf & "list1.listcount-1=" & List1.ListCount - 1
    Next
    End SubPrivate Sub Form_Load()
    Dim i As Integer
    For i = 1 To 5
    List1.AddItem String(5, Chr(i + 64))
    Next
    End Sub所以,忽略错误也可以:Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 5
    List1.AddItem String(5, Chr(i + 64))
    Next
    End Sub
    Private Sub Command1_Click()
    On Error Resume Next
    Dim i As Integer
    For i = 0 To List1.ListCount - 1
    If List1.Selected(i) Then List1.RemoveItem i
    Next
    End Sub