问题描述:
我在VB中使用了CommonDialog控件,设置了打开多个文件
然后加入了一个按钮,代码如下
With CommonDialog
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 mon dialog 控件的标志和属性
.Filter = "所有文件 (*.*)|*.*"
'.Flags = &H200 Or &H1000 Or &H80000
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
Filemanyaddress = .FileName
End With
Text1.Text = Filemanyaddress
但是当我运行时TEXT1这个文本框里只显示文件的目录,不显示文件的地址,怎么回事?
解析:
你的问题我明白
如果选择多个文件,则显示的是这些文件的文件夹名称
也就是你说的目录
你这样赋值得出来的结果就是这样的
你要进行判断将每一个文件的路径取出来
再进行显示
具体代码如下:
如果你想分行显示
先将Text的multiline=true
这是修改过后的代码,可以实现你要的功能
Private Sub Command1_Click()
With CommonDialog1
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 mon dialog 控件的标志和属性
.Filter = "所有文件 (*.*)|*.*"
'.Flags = &H200 Or &H1000 Or &H80000
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
filemanyaddress = .FileName
End With
····························
Files = Split(filemanyaddress, Chr(0))
For i = 1 To UBound(Files) Step 1
Files(i) = Files(0) &"\" &Files(i) '连接路径和文件名,组成文件数组
Next i
For i = 1 To UBound(Files) Step 1
strfilename = Files(i)
Text1.Text = strfilename &vbCrLf &Text1.Text
Next i
·····························
End Sub
做了一例,仅供参考。朋友。Private
Sub
Form_Load()
Show
Me.AutoRedraw
=
True
CommonDialog1.ShowOpen'注意:在打开时要选择到文件,下面的过程会自动获取你要的文件夹路径
s
=
CommonDialog1.FileName
s
=
StrReverse(s)
n
=
InStr(s,
"\")
s
=
Mid(s,
n
+
1)
s
=
StrReverse(s)
s
End
Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)