我想在commondialog的多文件选择中选择多个文件然后放到filelistbox中,但结果就是两个字:失败。 
我的做法如下:
   通过COMMAND按纽,将在commondialog1选多个文件后再放到file1 中
    Private Sub Command1_Click()
      CommonDialog1.CancelError = True
      CommonDialog1.Flags = cdlOFNAllowMultiselect
      CommonDialog1.ShowOpen
      File1.FileName = CommonDialog1.FileName
    End Sub
  以上运行后调试,系统指示:File1.FileName = CommonDialog1.FileName有问题。
   请教高手,这问题究竟出在哪里?应怎么才能解决呢?

解决方案 »

  1.   

    看看MSDN,FileListBox的说明,其中有这么一句话FileName 属性返回或设置所选文件的路径和文件名。对于 FileListBox 控件该属性在设计时 不可用。
    所以你想给FileListBox的filename属性赋值是不行的,你可以用listbox控件,把文件名AddItem的方法加入列表框
      

  2.   

    同意楼上的还有就是如果你获取多个文件名成功的话,它们之间是用空格(或者是chr(0))来进行分割的,这样你就可以逐个提取出来了
      

  3.   

    Dim strPath As String
        
        CommonDialog1.CancelError = True
        CommonDialog1.Flags = cdlOFNAllowMultiselect
        CommonDialog1.ShowOpen
        
        strPath = CommonDialog1.FileName
        strPath = StrReverse(strPath)
        strPath = StrReverse(Mid(strPath, InStr(strPath, "\")))
        File1.Path = strPath
      

  4.   

    Private Sub Command1_Click()
    On Error GoTo Err
        Dim strPath As String
        CommonDialog1.CancelError = True
        Const OFN_ALLOWMULTISELECT = &H200&
      
        CommonDialog1.FileName = ""
        CommonDialog1.Filter = "All Files|*.*"
        CommonDialog1.Flags = OFN_ALLOWMULTISELECT
        CommonDialog1.ShowOpen
        If CommonDialog1.FileName <> "" Then
            strPath = Left(CommonDialog1.FileName, InStrRev(CommonDialog1.FileName, "\"))
            File1.Path = strPath
        End If
    Err:
        If Err.Number = 32755 Then
            MsgBox "你按了取消!", vbCritical, "系统提示"
        End IfEnd SubPrivate Sub Form_Load()
         File1.Path = ""
    End Sub
      

  5.   

    最好是这样:将text2的multiline设置为true
    Private Sub Command1_Click()
        Dim I As Integer
        Dim Y As Integer
        Dim Z As Integer
        Dim FileNames$()
      
        Const OFN_ALLOWMULTISELECT = &H200&
      
        CommonDialog1.FileName = ""
        CommonDialog1.Filter = "All Files|*.*"
        CommonDialog1.Flags = OFN_ALLOWMULTISELECT
        CommonDialog1.Action = 1
      
        CommonDialog1.FileName = CommonDialog1.FileName & Chr(32)
      
        Z = 1
        For I = 1 To Len(CommonDialog1.FileName)
            I = InStr(Z, CommonDialog1.FileName, Chr(32))
            If I = 0 Then Exit For
            ReDim Preserve FileNames(Y)
            FileNames(Y) = Mid(CommonDialog1.FileName, Z, I - Z)
            Z = I + 1
            Y = Y + 1
        Next
      
        If Y = 1 Then
            Text1.Text = FileNames(0)
        Else
            Text2.Text = ""
            For I = 0 To Y - 1
                If I = 0 Then
                    Text1.Text = FileNames(I)
                Else
                    Text2.Text = Text2.Text & UCase(FileNames(I)) & Chr$(13) & Chr$(10)
                End If
            Next
        End If
    End Sub