使用文件系统控件(Directory List Box、Drive List Box 和 File ListBox)
许多应用程序必须显示关于磁盘驱动器、目录和文件的信息。为使用户能够利用文件系统,Visual Basic 提供了两种选择。可以使用由 CommonDialog控件提供的标准对话框,或者使用 DirListBox、DriveListBox 和 FileListBox这三种特殊的控件的组合创建自定义对话。
文件系统控件使用户能在应用程序中检查可用的磁盘文件并从中选择。若只需要标准的“打开文件”或“保存”对话框,则应考虑使用 CommonDialog控件。
详细信息 请参阅本章前面的“使用 CommonDialog 控件”。
示例应用程序:Winseek.vbp
许多代码示例都来自 WinSeek 示例应用程序(Winseek.vbp),该程序列在Samples目录中。
检查文件系统
每个文件系统控件都经过精心设计,将灵活、复杂的文件系统检查功能与简易的编程方法结合起来。每个控件都自动执行文件数据获取任务,但也可编写代码自定义控件外观并指定显示的信息。
可单独使用文件系统控件,也可组合起来使用。组合使用时,可在各控件的事件过程中编写代码来判断它们之间的交互方式。也可让它们独立操作。图 7.17 显示了一起使用的三个控件。
文件系统控件自动从操作系统获取一切信息;可访问此信息或判断每个控件通过其属性显示的信息。例如,在缺省时显示当前工作目录的内容(即启动应用程序的目录,或者由 ChDir 语句改变的当前目录) 。
应用程序也可显示文件列表,这些文件的名字匹配一种模式,例如 *.frm。只需在窗体上绘制一个文件列表,设置其 Pattern 属性为 *.frm。运行时,可用下列代码指定 Pattern 属性:
File1.Pattern = "*.FRM"
文件系统控件使操作非常灵活,这是 CommonDialog 控件无法做到的。可以用多种方法混合、匹配它们,并可控制它们的外观和交互方式。
如果目的就是要让用户能够打开和保存文件,则 CommonDialog 控件为这些操作提供了现成的一组对话框。这些对话框也为许多其它基于 MicrosoftWindows 的应用程序所使用,因此具有标准化的外观。这些控件也能识别可用的网络驱动器。
详细信息 请参阅本章前面的“使用 CommonDialog 控件”。
驱动器列表框
驱动器列表框是下拉式列表框。在缺省时在用户系统上显示当前驱动器。当该控件获得焦点时,用户可输入任何有效的驱动器标识符,或者单击驱动器列表框右侧的箭头。用户单击箭头时将列表框下拉以列举所有的有效驱动器。若用户从中选定新驱动器,则这个驱动器将出现在列表框的顶端。可用代码检查 Drive 属性来判断当前选择的驱动器。应用程序也可通过下述简单赋值语句指定出现在列表框顶端的驱动器:
Drive1.Drive = "c:\"
驱动器列表框显示可用的有效驱动器。从列表框中选择驱动器并不能自动地变更当前的工作驱动器;然而可用 Drive 属性在操作系统级变更驱动器,这只需将它作为 ChDrive 语句的参数:
ChDrive Drive1.Drive
目录列表框
目录列表框从最高层目录开始显示用户系统上的当前驱动器目录结构。起初,当前目录名被突出显示,而且当前目录和在目录层次结构中比它更高层的目录一起向根目录方向缩进。在目录列表框中当前目录下的子目录也缩进显示。在列表中上下移动时将依次突出显示每个目录项。
标识单个目录
列表框中的每个目录关联一个整型标识符,可用它来标识单个目录。CommonDialog 控件没有提供这个功能。Path 属性 (Dir1.Path) 指定的目录总是有 ListIndex 值-1。紧邻其上的目录具有 ListIndex 值- 2,再上一个为ListIndex- 3,依次类推。Dir1.Path 的第一个子目录具有 ListIndex 值 0。如图 7.18 所示,若第一级子目录有多个目录,则每个目录的 ListIndex 值按 1、2、3……的顺序依次排列。