二、了解BrowseForFolder方法
BrowseForFolder方法用以显示浏览文件夹对话框,该方法返回一个文件夹(Folder)对象,方法及参数如下:
l 语法:
strDir = Shell.BrowseForFolder(Hwnd, Title,Options, [RootFolder])
l 参数:
Hwnd:包含对话框的窗体句柄(handle),一般设置为0。
Title:将在对话框中显示的说明,为字符串。
Options:使用对话框的特殊方式,为长整数,一般设置为0。
RootFolder:(可选的),用来设置浏览的最顶层文件夹,缺省时为“桌面”,你可以将其设置为一个路径或“特殊文件夹常数”。
三、SHELL实现文件夹浏览对话框实例讲解:
3.1 简单实例(见图):
Dim MyShell As New Shell '申明并实例化SHELL对象
Dim MyFolder As Folder '文件夹对象
'显示文件夹浏览对话框
Set MyFolder = MyShell.BrowseForFolder(0, "请选择文件夹:", 0)
'如果该对象释放则退出过程,否则输出文件夹路径
If MyFolder Is Nothing Then Exit Sub
MsgBox MyFolder.Self.Path
说明:文件夹对象Self方法表示所选文件夹自身,在BrowseForFolder方法可选参数[RootFolder]未设定值或该值为0时,即顶层文件夹为默认“桌面”时,如用Items方法则报错。
3.2 对话框增加所选文件夹显示文本框(见下图)
Dim MyShell As New Shell
Dim MyFolder As Folder
' Options参数改为十六进制数10
Set MyFolder = MyShell.BrowseForFolder(0, "请选择文件夹:", &H10)
3.2 对话框显示提示文字
Dim MyShell As New Shell
Dim MyFolder As Folder
' Options参数改为十六进制数100
Set MyFolder = MyShell.BrowseForFolder(0, "请选择文件夹:", &H100)
说明:Options参数改为十六进制数200时,不显示【新建文件夹】按钮,如果改为负数会显示特殊的浏览对话框,大家可以自己测试。
3.3 通过 [RootFolder] 可选参数指定顶层文件夹
RootFolder参数默认或为0值时,顶层文件夹为“桌面”,下面实例我们将顶层文件夹指定“我的电脑”(见下图)
Const ssfDRIVES = &H11 '顶层文夹“我的电脑”常量
Dim MyShell As Shell '申明SHELL对象
Dim MyFolder As Folder '申明文件夹对象
'实例化SHELL对象
Set MyShell = New Shell
'显示文件夹,指定“我的电脑”为顶层文件夹
Set MyFolder = MyShell.BrowseForFolder(Me.Hwnd, "请选择文件夹", 0, ssfDRIVES)
'文件夹路径输出
If Not MyFolder Is Nothing Then
MsgBox MyFolder.Items.Item.Path '测试
End If
说明:1、前面曾提到过,如指定了顶层文件夹,我们可以使用Items方法;
2、其它指定顶层文件夹常量参看实例,你也可以自己测试。
江羽 2010-05-22
*****************************************************************************************
实例及Word文稿下载:点击下载此附件