在windows中编程时,下述这些功能是非常重要的:添加、移动、修改、创建、删除文件夹(目录)和文件,以及获得驱动器的信息和 *** 作驱动器。
VB允许用下述两种不同的方法来 *** 作驱动器、文件夹和文件。传统的方法是使用Open语句、Write#等,也可以用FileSystemObject(FSO)对象模型。从vb第一版直到如今,文件处理都是通过使用Open语句以及其它一些相关的语句和函数来实现并将逐步转向使用FSO对象模型。如果设计应用程序使用数据库文件,则在应用程序中不需要提供直接的文件访问。Date控件与绑定控件都可以向数据库读写数据,这比直接使用文件访问更容易。
下面介绍几个常用的文件控件。
一、文件控件
在VB6.0中包括四个文件类型控件,它们分别是DriveListBox控件(驱动器列表框)、DirListBox控件(目录列表框)、FileListBox控件(文件列表框)和CommDialog控件,可以实现不同功能。
1、 DriveListBox控件
DriveListBox控件的功能是在程序的运行过程中,为用户提供一个选择有效的磁盘驱动器,该控件可以用来显示用户系统中所有有效磁盘驱动器的列表。
DriveListBox控件及后面介绍的DirListBox控件、FileListBox控件有许多标准属性,包括Enable、FontBold、FontItalic、FontName、FontSize、Height、Left、Name、Top、Visible、Width等等。此外,DriveListBox控件最重要的一个属性正厅辩就是Drive属性,用来改变DriveListBox控件的缺省驱动器,该Drive属性只能在程序的代码中设置,不能通过属性窗口设置。其格式为:
驱动器列表框名称.Drive[=驱动器名]
这里的“驱动器名”是指定的驱动器,如果省略,则指当前驱动器。如果所选择的驱动器在当前系统中不存在,则产生错误。
每次重新设置驱动器列表框的Drive属性时,都将引发Change事件。
下面就是一个利用DriveListBox控件来进行程序设计的示例。
(1)添加控伏春件
首先在空白的窗体上放置一个DriveListBox控件。
(2)添加代码
在窗体的Form_Load()事件中添加下列代码:
Private Sub Form_load()
Drive1.Drive="e:\" '设置控件的缺省驱动器为E。
End Sub
程序说明:Form_load()事件在程序运行时就会被激活。然后就会通过Drive1.Drive="e:\"这条语句来设置控件的缺省驱动器为E。
(3)存储文件,运行程序
由于在程序的Form_Load()事件中设置DriveListBox控件的缺省驱动器为E盘,所以程序的开始界面中DriveListBox控件显示的是E盘。
2、DirListBox 控件
DirListBox 控件的功能是在程序运行过程中,显示分层的列表。DirListBox 控件有几个比较重要的属性,如Path属性、List属性和ListCount属性。
(1)Path属性
Path属性用于目录列表框和文件列表框,用来设置或返回当前驱动器的路径,属举缺性的值是一个指示路径的字符串,例如"e:\user"或"c:\PWIN95\MEDIA"。其格式为:
[窗体.]目录列表框│文件列表框.Path[="路径"]
Path属性也只能在程序的代码中设置,不能通过属性窗口设置。
一般在应用程序的设计中,如果用到DirListBox 控件,则同时要用到DriveListBox控件与之相关联,如下:
添加一个DriveListBox控件,一个DirListBox 控件。
设置两者同步(当DriveListBox控件的改变驱动器时,DirListBox 控件中的内容与之同步):
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '设置 DirListBox 控件的路径与DriveListBox控件同步
End Sub
设置DriveListBox控件的缺省驱动器,如为“C”盘:
Private Sub Form_load()
Drive1.Drive="c:\" '设置控件的缺省驱动器为C。
End Sub
(2)List 属性
list属性的功能是返回或设置控件的列表部分的工程。
语法如下:
[窗体.]控件.list(index)[=string]
list属性语法包含下面部分:
控件:可以是组合框、列表框、驱动器列表框、目录列表框、文件列表框等。
index:某种列表框中项目的下标。
string:字符串表达式
对于DirListBox 控件,索引号序列(index)基于在运行中创建该控件时的当前目录和子目录。当前展开的目录用索引值-1表示,当前展开目录的上一级目录用绝对值更大一些的负索引值来表示。如,-2是当前展开的目录的父目录,-3又是它的上一级的目录。当前展开的目录以下的目录的范围是从0到ListCount-1。
例:添加一个 DriveListBox控件,一个 DirListBox 控件,并设置如下代码:
Private Sub Form_load()
Drive1.Drive="c:\" '设置控件的缺省驱动器为C。
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '设置 DirListBox 控件的路径与DriveListBox控件同步
End Sub
Private Sub Dir1_Change()
MsgBox Dir1.List(-2) '通过对话框显示选中目录的上一级目录。
以下是实现在 VB 程序中加入三个文件系统控件并让它们同步的步骤:1. 打开 Visual Basic 程序,并创建一个新项目。
2. 在窗体上添加三个文件系统控件,例如 `DriveListBox`、`DirListBox` 和姿锋扮 `FileListBox`。可以通过拖放的方式将这些控件添加到窗体上。
3. 设置每个控件的主要属性,如下所示:
- `DriveListBox` 控件:设置 `Drive` 属性为 `""`(空字符串);
- `DirListBox` 控件:设置 `Path` 属性为 `DriveListBox.Path`,以确保该控件始终显示当前驱动器的根目录;
- `FileListBox` 控件:设置 `Path` 属性为 `DirListBox.Path`,以确保该控件始终显示当前目录下的文件列表。
4. 编写代码来实现控件之间的同步。具体来说,需要为 `DriveListBox` 控件和 `DirListBox` 控件编写 `Change` 事件处理程序,为 `DirListBox` 控件和 `FileListBox` 控件编写 `Click` 事件处理程序。代码示例如下:
```vb
Private Sub DriveListBox_Change()
DirListBox.Path = DriveListBox.Drive
End Sub
Private Sub DirListBox_Change()
FileListBox.Path = DirListBox.Path
End Sub
Private Sub DirListBox_Click()
FileListBox.Refresh
End Sub
```
在这些事件处理程序中,我们使用控件的属性和方法来进行控件之间的同步。当用户选择不同的驱动器时,`DriveListBox_Change()` 事件处理迹灶程序会设置 `DirListBox` 控件的 `Path` 属性为当前驱动器的根目录;当用户选择不同的目录时,`DirListBox_Change()` 事件处理程序会设置 `FileListBox` 控件的 `Path` 属性为当前目录,以更新文件列表;当用户单击 `DirListBox` 控件时,`DirListBox_Click()` 事件处理程序会调基拿用 `FileListBox.Refresh` 方法来刷新文件列表,以确保它显示最新的文件列表。
5. 运行程序并测试控件之间的同步是否正常工作。您应该能够从 `DriveListBox` 控件中选择不同的驱动器,并从 `DirListBox` 控件中选择不同的目录,然后在 `FileListBox` 控件中看到当前目录下的文件列表。
需要注意的是,本示例代码仅提供了基本的控件同步功能,您可以根据自己的需求进行修改和扩展。同时,还应该考虑异常情况的处理,例如用户选择了不存在的驱动器或目录等情况。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)