listbox 控件中,我把multiselect属性选成2,然后选中listbox控件里面的几个值
然后点旁边的一个command按钮,想把这几个选中的值删除掉请问这样的代码应该怎么写啊 我是指command按 纽里面的代码 我写了一上午没写出来惭愧 请教各位高手了谢谢

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim i As Long
        For i = 0 To List1.SelCount
            List1.RemoveItem List1.ListIndex
        Next
    End Sub
      

  2.   

    为了防止出现删除错误,删除前加上判断条件:
    Private Sub Command1_Click()
        Dim i As Long
        For i = 0 To List1.SelCount
            If List1.SelCount = 0 Or List1.ListCount = 0 Then Exit For
            List1.RemoveItem List1.ListIndex
        Next
    End Sub
      

  3.   

    Private Sub Command1_Click()
                Dim i As Long
                For i = 0 To List1.SelCount
                    List1.RemoveItem List1.ListIndex
                Next
                
    End SubPrivate Sub Form_Load()
                List1.AddItem "aaaaa"
                List1.AddItem "bbbbb"
                List1.AddItem "ccccc"
    End Sub
      

  4.   

    Private Sub Command1_Click()
                Dim i As Long
                For i = 0 To List1.SelCount
                    List1.RemoveItem (i)
                Next
                
    End SubPrivate Sub Form_Load()
               List1.AddItem "aaaa", 0
               List1.AddItem "bbbb", 1
               List1.AddItem "cccc", 2
               
    End Sub
      

  5.   

    do while List1.SelCount>0
      List1.RemoveItem List1.ListIndex
    loop
      

  6.   

    KAO,楼上这么多位给代码的老兄有没有测试过?首先用循环是对的,但不是从0开始,
    而是从总数-1开始,直到0。做人要厚道。
      

  7.   

    for i=0 to list.selectCount-1
      List1.RemoveItem List1.ListIndex
    next
      

  8.   

    晕啊,没一个对的,不信就试试,比如有100个item,我选中第1,3,5,7项
      

  9.   

    这么删:
    Private Sub Command1_Click()
       Dim i As Long
       For i = List1.ListCount - 1 To 0 Step -1
           If List1.Selected(i) = True Then
                List1.RemoveItem i
           End If
       Next
    End Sub
      

  10.   

    rainstormmaster(暴风雨 v2.0) 的是正解!因为列表框如果从上往下删除会导致总项目数变化,循环到最后出错。所以一定要反过来。