用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧VisualBasic

文件系统控件方案

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 19:52:22

    文件系统控件方案:文件搜索器
    应用程序因为用户常常希望快速查找应用程序的可用文件或文件组,所以,许多应用程序都提供查询文件系统的功能。Winseek.vbp 示例应用程序协助用户浏览驱动器和目录并显示所有类型的文件。

    下表总结了 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 Sub
    End 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
     注意,无论用鼠标单击还是移动选项(例如,利用箭头键移动),在选定新驱动器时都将在驱动器列表框中发生 Change 事件。试图访问未关闭驱动器门的软盘驱动器,或者选定一个无意中已切断连接的网络驱动器,诸如此类的操作都将触发错误处理程序。因为出错后不能按原先的安排赋值,所以 dirList.Path 仍包含先前的有效驱动器。将 dirList.Path 重新赋予drvList.Drive 后就可更正这个错误。
    详细信息 请参阅第十三章“调试代码和处理错误”。

    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 等等属性的文件。这将把搜索限制在满足条件的文件中。

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:30,515.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号