菜鸟请教大虾:问题究竟出在哪里?

etou 2003-11-06 01:14:41
我想在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有问题。
请教高手,这问题究竟出在哪里?应怎么才能解决呢?

...全文
27 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihonggen0 2003-11-06
  • 打赏
  • 举报
回复
最好是这样:

将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
lihonggen0 2003-11-06
  • 打赏
  • 举报
回复
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 If

End Sub

Private Sub Form_Load()
File1.Path = ""
End Sub
射天狼 2003-11-06
  • 打赏
  • 举报
回复
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
踏平扶桑 2003-11-06
  • 打赏
  • 举报
回复
同意楼上的

还有就是如果你获取多个文件名成功的话,它们之间是用空格(或者是chr(0))来进行分割的,这样你就可以逐个提取出来了
3661512 2003-11-06
  • 打赏
  • 举报
回复
看看MSDN,FileListBox的说明,其中有这么一句话

FileName 属性

返回或设置所选文件的路径和文件名。对于 FileListBox 控件该属性在设计时 不可用。


所以你想给FileListBox的filename属性赋值是不行的,你可以用listbox控件,把文件名AddItem的方法加入列表框
etou 2003-11-06
  • 打赏
  • 举报
回复
很高兴大虾们能为我这个菜鸟解决问题,射天狼大虾的答复正好是我想要的那种。而李洪根大虾的太过长了(不好意思,其实是我还有很多地方看不懂 :P)。但不管怎么说,都要感谢参加回答我问题的上面几位大虾。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧