1.用什么方法可以实现:CommonDialog1打开文件时可以复选多个文件??
2.ListBox可以实现多选吗??
谢谢!急!

解决方案 »

  1.   

    2、ListBox的style设置为1 ,则为可以多选checkbox的形式'判断多选取值的方法
    '判断listbox 的取值
    Private Sub Command1_Click()
        Dim i As Integer
        For i = 0 To List1.ListCount - 1
            If List1.Selected(i) = True Then
                MsgBox List1.List(i)
            End If
        Next
    End Sub
      

  2.   

    可以的,在CommonDialog中设置Flags属性
    listbox中设置MultiSelect属性
      

  3.   

    用filelistbox控件可以实现文件多选
    设置MultiSelect属性为真即可
      

  4.   

    1.为什么要用CommonDialog1控件,打包的时候要凭空多出一个OCX,几百K,很大的哦,直接用
    API就可以实现了,参看:
    http://www.mvps.org/vbnet/index.html?code/comdlg/filedlgsoverview.htm
    其中这个属性是设置是否允许多文件选择
    Public Const OFN_ALLOWMULTISELECT As Long = &H200 
    2.ListBox可以多选,必须在程序运行之前将ListBox的MultiSelect属性为2.
      

  5.   

    '--------------------------------------
    '用通用对话框同时选择多个文件
    '--------------------------------------
    ' 洪恩在线 求知无限
    '--------------------------------------
    '------名称-------------作用------------
    '       mnuOpen         “打开”菜单项
    '       mnuExit         “退出”菜单项
    '       cmdExit         “退出”按钮
    '       CommonDialog1   通用对话框
    '       Label1-2        标签
    '       List1           显示选中文件的列表框 ListBox
    '--------------------------------------Private Sub cmdExit_Click()
    Unload Me
    End SubPrivate Sub Form_Load()End SubPrivate Sub mnuExit_Click()
    Unload Me
    End Sub
    Private Sub mnuOpen_Click()
     Dim I As Integer
        Dim Y As Integer
        Dim Z As Integer
        '存储文件名的数组
        Dim FileNames$()    CommonDialog1.FileName = ""
        CommonDialog1.Filter = "All Files|*.*"
        '为“打开”和“另存为”对话框返回或设置选项。
        '语法
        'object.Flags [= value]
        '------------------------------------------------------
        'Flags 属性语法有下列部分:
        '部分       描述
        '------------------------------------------------------
        'object     对象表达式,其值是“应用于”列表中的对象。
        'value      如“设置值”中所描述,是为“打开”和“另存为”对话框指定选项的常数或值。
        '------------------------------------------------------
        'Value 的设置值是:
        '------------------------------------------------------
        '常数                       值      描述
        '------------------------------------------------------
        'cdlOFNAllowMultiselect     &H200   它指定文件名列表框允许多重选择。运行时,通过按 SHIFT 键以及使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,FileName 属性就返回一个包含全部所选文件名的字符串。串中各文件名用空格隔开。
        'cdlOFNCreatePrompt         &H2000  当文件不存在时对话框要提示创建文件。该标志自动设置 cdlOFNPathMustExist 和 cdlOFNFileMustExist 标志。
        'cdlOFNExplorer             &H80000 它使用类似资源管理器的打开一个文件的对话框模板。适用于 Windows 95 和 Windows NT 4.0。
        'cdlOFNExtensionDifferent   &H400   它指示返回的文件扩展名与 DefaultExt 属性指定的扩展名不一致。如果 DefaultExt 属性是 Null,或者扩展相匹配,或者没有扩展时,此标志不设置。当关闭对话框时,可以检查这个标志的值。
        'cdlOFNFileMustExist        &H1000  它指定只能输入文件名文本框已经存在的文件名。如果该标志被设置,则当用户输入非法的文件名时,要显示一个警告。该标志自动设置 cdlOFNPathMustExist 标志。
        'cdlOFNHelpButton           &H10    使对话框显示帮助按钮。
        'cdlOFNHideReadOnly         &H4     隐藏只读复选框。
        'cdlOFNLongNames            &H200000使用长文件名。
        'cdlOFNNoChangeDir          &H8     强制对话框将对话框打开时的目录置成当前目录。
        'cdlOFNNoDereferencelinks   &H100000不要间接引用外壳链接(也称作快捷方式)。缺省时,选取外壳链接会引起它被外壳间接引用。
        'cdlOFNNoLongNames          &H40000 无长文件名。
        'cdlOFNNoReadOnlyReturn     &H8000  它指定返回的文件不能具有只读属性,也不能在写保护目录下面。
        'cdlOFNNoValidate           &H100   它指定公共对话框允许返回的文件名中含有非法字符。
        'cdlOFNOverwritePrompt      &H2     使“另存为”对话框当选择的文件已经存在时应产生一个信息框,用户必须确认是否覆盖该文件。
        'cdlOFNPathMustExist        &H800   它指定只能输入有效路径。如果设置该标志,输入非法路径时,应显示一个警告信息。
        'cdlOFNReadOnly             &H1     建立对话框时,只读复选框初始化为选定。该标志也指示对话框关闭时只读复选框的状态。
        'cdlOFNShareAware           &H4000  它指定忽略共享冲突错误。
        '-----------------------------------------------------
        CommonDialog1.Flags = cdlOFNAllowMultiselect
        CommonDialog1.Action = 1
        '它指定文件名列表框允许多重选择。运行时,通过按 SHIFT 键以及
        '使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,
        'FileName 属性就返回一个包含全部所选文件名的字符串。
        '串中各文件名用空格隔开。
        CommonDialog1.FileName = CommonDialog1.FileName & Chr(32)
        '从返回的字符串中分离出文件名
        '经过分离后FileNames(Y)数组存放着选择的文件名信息
        '如果只有一个文件 FileNames(0)=“文件名”
        '如果有多个文件 FileNames(0)=“路径名” FileNames(1--y)=“文件名”
        '这时我们需要对数组进行处理
        Z = 1
        For I = 1 To Len(CommonDialog1.FileName)
            'InStr函数,返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
            '语法 InStr(起点位置, string1, string2)
            I = InStr(Z, CommonDialog1.FileName, Chr(32))
            If I = 0 Then Exit Sub
            ReDim Preserve FileNames(Y)
            'Mid函数,返回 Variant (String),其中包含字符串中指定数量的字符。
            '语法 Mid(string, start[, length])
            FileNames(Y) = Mid(CommonDialog1.FileName, Z, I - Z)
            Z = I + 1
            Y = Y + 1
        Next
        '先清空列表框中已有内容
        List1.Clear
        '如果只有一个文件 FileNames(0)=“文件名”
        If Y = 1 Then
            List1.AddItem FileNames(0)
        '如果文件个数为多个,将“路径”+“\”+“文件名”后作为完整的文件名
        Else
            
            For I = 1 To Y - 1
                List1.AddItem FileNames(0) & "\" & FileNames(I)
            Next
        End If
    End Sub
      

  6.   

    listbox的MultiSelect属性:
    0  表示不能多选
    1  表示简单多选
    2  表示宽展多选
      

  7.   

    谢谢大家的帮助
    To:SoHo_Andy(冰) 
    '判断多选取值的方法
    '判断listbox 的取值
    Private Sub Command1_Click()
        Dim i As Integer
        For i = 0 To List1.ListCount - 1
            If List1.Selected(i) = True Then
                MsgBox List1.List(i)
            End If
        Next
    End Sub
    这个会出错!????
      

  8.   

    没有错啊,你设置listbox的style 属性为 1- checkbox 了么'判断listbox 的取值
    Private Sub Command1_Click()
        Dim i As Integer
        For i = 0 To List1.ListCount - 1
            If List1.Selected(i) = True Then
                MsgBox List1.List(i)
            End If
        Next
    End SubPrivate Sub Form_Load()
        List1.AddItem "啊啊"
        List1.AddItem "大的"
        List1.AddItem "峨峨"
        List1.AddItem "哥哥"
    End Sub