首先要将List的MultiSelect 设为1或2(允许多选)
是这个意思吗?^_^
有其它问题再问。

解决方案 »

  1.   

    新建一工程, 在Form1上添加List1和Command1. 设置List1的MultiSelect属性为1或2复制如下程序至代码中Option ExplicitPrivate Sub Command1_Click()
    Dim s As String, i As Byte, l As Byte    With List1
            For i = 0 To .ListCount - 1
                If .Selected(i) Then
                    l = l + 1
                    s = s & .List(i) & vbCrLf
                End If
            Next i
            If l = 0 Then
                s = "You select 0 item!"
            Else
                s = "You select " & l & " item(s):" & vbCrLf & s
            End If
            MsgBox s, vbOKOnly + vbInformation, "Check"
        End With
        
    End SubPrivate Sub Form_Load()
    Dim i As Byte    With List1
            For i = 1 To 9
                .AddItem "Item " & i
            Next i
        End With
        
    End Sub
    在List1中选取多行:
    当MultiSelect为1(简单复选)。鼠标单击或按下 SPACEBAR (空格键)在列表中选中或取消选中项。(箭头键移动焦点。)
    当MultiSelect为2(扩展复选)。按下 SHIFT 并单击鼠标或按下 SHIFT 以及一个箭头键(上箭头、下箭头、左箭头、和右箭头)将在以前选中项的基础上扩展选择到当前选中项。按下 CTRL 并单击鼠标来在列表中选中或取消选中项。
      

  2.   

    用SendMessage发送一个LB_SETSEL信息,可以一次选中所有项。
        Dim nRet As Long
        nRet = SendMessage(ListBox1.hWnd, LB_SETSEL, true, -1)
    或发送LB_SELITEMRANGEEX信息,可选中连续的多个项目。
        nRet = SendMessage(lst.hWnd, LB_SELITEMRANGEEX, start, end)
    start 起始项 end 终止项
      

  3.   

    用SendMessage发送一个LB_SETSEL信息,可以一次选中所有项。
        Dim nRet As Long
        nRet = SendMessage(ListBox1.hWnd, LB_SETSEL, true, -1)
    或发送LB_SELITEMRANGEEX信息,可选中连续的多个项目。
        nRet = SendMessage(lst.hWnd, LB_SELITEMRANGEEX, start, end)
    start 起始项 end 终止项