我想在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有问题。
请教高手,这问题究竟出在哪里?应怎么才能解决呢?
我的做法如下:
通过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有问题。
请教高手,这问题究竟出在哪里?应怎么才能解决呢?
所以你想给FileListBox的filename属性赋值是不行的,你可以用listbox控件,把文件名AddItem的方法加入列表框
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlOFNAllowMultiselect
CommonDialog1.ShowOpen
strPath = CommonDialog1.FileName
strPath = StrReverse(strPath)
strPath = StrReverse(Mid(strPath, InStr(strPath, "\")))
File1.Path = strPath
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
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