下表总结了 WinSeek 应用程序在Seek.frm 窗体中使用的控件。
注意 文件系统控件没有 caption 属性,虽然可为它们加标签并指定访问键。关于这种使用标签的方法的详细信息,请参阅本章后面的使用Label 控件一节。
编写 WinSeek 应用程序的代码
用鼠标单击驱动器列表框中的项目就会触发 Change 事件。当用户选定项目并接着改变窗体上的焦点时也将触发 Change 事件。在目录列表框中,需要 DblClick 事件生成 Change 事件。
当用户不想用鼠标变更目录时,通常使用箭头键选定需要的目录,然后按ENTER 键。
因为 ENTER 键通常与缺省 CommandButton 控件关联,所以,WinSeek 必须识别用户在何时只是想变更目录而不搜索文件。
通过判断 dirList 列表框的路径是否不同于当前突出显示的目录,WinSeek应用程序解决了这个问题。当用户单击目录列表框中的项目或用箭头键在目录列表框中移动时,可能发生这种情况。下列代码判断 dirList.Path 是否与突出显示的目录不同。若不同,则更新 dirList.Path。若相同,则执行搜索操作。
Private Sub cmdSearch_Click() . . .'若 dirList.Path 与当前选定目录不同,'则执行更新操作;否则执行'搜索操作。If dirList.Path dirList.List(dirList.ListIndex) Then dirList.Path = dirList.List(dirList.ListIndex) Exit SubEnd If'继续搜索。 . . .End Sub
WinSeek 应用程序使用下述过程处理重要的事件:
drvList_Change 过程
dirList_Change 过程
cmdSearch_Click 过程
DriveListBox 控件的 Change 事件
当用户单击驱动器列表框的项目时就会生成控件的 Change 事件。此时将调用 drvList_Change 事件过程并运行下述代码:Private Sub
drvList_Change () On Error GoTo DriveHandler '若选定新驱动器,则 Dir1 列框'更新显示 。 dirList.Path = drvList.Drive Exit Sub
'若发生错误,则用 dirList.Path 重新设置 drvList.Drive。
DriveHandler: drvList.Drive = dirList.Path Exit Sub End Sub(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
注意,无论用鼠标单击还是移动选项(例如,利用箭头键移动),在选定新驱动器时都将在驱动器列表框中发生 Change 事件。试图访问未关闭驱动器门的软盘驱动器,或者选定一个无意中已切断连接的网络驱动器,诸如此类的操作都将触发错误处理程序。因为出错后不能按原先的安排赋值,所以 dirList.Path 仍包含先前的有效驱动器。将 dirList.Path 重新赋予drvList.Drive 后就可更正这个错误。
详细信息 请参阅第十三章调试代码和处理错误。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)DirListBox 控件的 Change 事件
如果用户双击目录列表框中的项目或在代码中(如 drvList_Change 过程中)变更dirList 的 Path 属性,就会启动 dirList_Change 事件。下列代码响应此事件:
Private Sub dirList_Change ()
'更新文件列表框,以便与目录列表框同步。
filList.Path = dirList.Path
End Sub
此事件过程将 dirList 列表框的 Path 属性赋予 filList 列表框的 Path 属性。这将在 filList 列表框中触发重新绘制的 PathChange 事件;不必在filList_PathChange 过程中添加代码,因为此应用程序中的事件在 filList 列表框结束。
CommandButton 控件的 Click 事件
此事件过程判断 dirList 列表框中突出显示的项目是否和 dirList.Path 相同。若项目不同,则更新 dirList.Path;否则执行搜索操作。
Private Sub cmdSearch_Click () . . . '若 dirList.Path 与当前选定的目录不同, '则更新;否则执行搜索。 If dirList.Path dirList.List _ (dirList.ListIndex) Then dirList.Path = dirList.List(dirList.ListIndex) Exit Sub End If '继续搜索。 . . .End Sub
注意 可用附加功能增强 WinSeek 应用程序。例如会出现这样的情况,希望使用文件控件的属性。这时可通过使用复选框使用户设置文件属性的不同组合,以使文件列表框显示 Hidden、System 等等属性的文件。这将把搜索限制在满足条件的文件中。