我在VB中使用了CommonDialog控件,设置了打开多个文件...

我在VB中使用了CommonDialog控件,设置了打开多个文件
然后加入了一个按钮,代码如下
With CommonDialog
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 common 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: 设置 common 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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-11-11
我这里显示没问题啊,是全部路径,是不是你的TEXT太短了?拉长点试试
那就不知道了,我这里显示一切正常,是完整路径
相似回答