程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> vb文件系統控件方案

vb文件系統控件方案

編輯:VB綜合教程

  文件系統控件方案:文件搜索器

  應用程序因為用戶常常希望快速查找應用程序的可用文件或文件組,所以,許多應用程序都提供查詢文件系統的功能。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 等等屬性的文件。這將把搜索限制在滿足條件的文件中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved