使用文件系統(tǒng)控件(DirectoryListBox、DriveListBox和FileListBox)
許多應(yīng)用程序必須顯示關(guān)于磁盤驅(qū)動器、目錄和文件的信息。為使用戶能夠利用文件系統(tǒng),VisualBasic提供了兩種選擇。可以使用由CommonDialog控件提供的標準對話框,或者使用DirListBox、DriveListBox和FileListBox這三種特殊的控件的組合創(chuàng)建自定義對話。
文件系統(tǒng)控件使用戶能在應(yīng)用程序中檢查可用的磁盤文件并從中選擇。若只需要標準的“打開文件”或“保存”對話框,則應(yīng)考慮使用CommonDialog控件。
詳細信息請參閱本章前面的“使用CommonDialog控件”。
示例應(yīng)用程序:Winseek.vbp
許多代碼示例都來自WinSeek示例應(yīng)用程序(Winseek.vbp),該程序列在Samples目錄中。
檢查文件系統(tǒng)
每個文件系統(tǒng)控件都經(jīng)過精心設(shè)計,將靈活、復(fù)雜的文件系統(tǒng)檢查功能與簡易的編程方法結(jié)合起來。每個控件都自動執(zhí)行文件數(shù)據(jù)獲取任務(wù),但也可編寫代碼自定義控件外觀并指定顯示的信息。
可單獨使用文件系統(tǒng)控件,也可組合起來使用。組合使用時,可在各控件的事件過程中編寫代碼來判斷它們之間的交互方式。也可讓它們獨立操作。圖7.17顯示了一起使用的三個控件。
文件系統(tǒng)控件自動從操作系統(tǒng)獲取一切信息;可訪問此信息或判斷每個控件通過其屬性顯示的信息。例如,在缺省時顯示當前工作目錄的內(nèi)容(即啟動應(yīng)用程序的目錄,或者由ChDir語句改變的當前目錄)。
應(yīng)用程序也可顯示文件列表,這些文件的名字匹配一種模式,例如*.frm。只需在窗體上繪制一個文件列表,設(shè)置其Pattern屬性為*.frm。運行時,可用下列代碼指定Pattern屬性:
File1.Pattern="*.FRM"
文件系統(tǒng)控件使操作非常靈活,這是CommonDialog控件無法做到的。可以用多種方法混合、匹配它們,并可控制它們的外觀和交互方式。
如果目的就是要讓用戶能夠打開和保存文件,則CommonDialog控件為這些操作提供了現(xiàn)成的一組對話框。這些對話框也為許多其它基于MicrosoftWindows的應(yīng)用程序所使用,因此具有標準化的外觀。這些控件也能識別可用的網(wǎng)絡(luò)驅(qū)動器。
詳細信息請參閱本章前面的“使用CommonDialog控件”。
驅(qū)動器列表框
驅(qū)動器列表框是下拉式列表框。在缺省時在用戶系統(tǒng)上顯示當前驅(qū)動器。當該控件獲得焦點時,用戶可輸入任何有效的驅(qū)動器標識符,或者單擊驅(qū)動器列表框右側(cè)的箭頭。用戶單擊箭頭時將列表框下拉以列舉所有的有效驅(qū)動器。若用戶從中選定新驅(qū)動器,則這個驅(qū)動器將出現(xiàn)在列表框的頂端。可用代碼檢查Drive屬性來判斷當前選擇的驅(qū)動器。應(yīng)用程序也可通過下述簡單賦值語句指定出現(xiàn)在列表框頂端的驅(qū)動器:
Drive1.Drive="c:/"
驅(qū)動器列表框顯示可用的有效驅(qū)動器。從列表框中選擇驅(qū)動器并不能自動地變更當前的工作驅(qū)動器;然而可用Drive屬性在操作系統(tǒng)級變更驅(qū)動器,這只需將它作為ChDrive語句的參數(shù):
ChDriveDrive1.Drive
目錄列表框
目錄列表框從最高層目錄開始顯示用戶系統(tǒng)上的當前驅(qū)動器目錄結(jié)構(gòu)。起初,當前目錄名被突出顯示,而且當前目錄和在目錄層次結(jié)構(gòu)中比它更高層的目錄一起向根目錄方向縮進。在目錄列表框中當前目錄下的子目錄也縮進顯示。在列表中上下移動時將依次突出顯示每個目錄項。
標識單個目錄
列表框中的每個目錄關(guān)聯(lián)一個整型標識符,可用它來標識單個目錄。CommonDialog控件沒有提供這個功能。Path屬性(Dir1.Path)指定的目錄總是有ListIndex值-1。緊鄰其上的目錄具有ListIndex值-2,再上一個為ListIndex-3,依次類推。Dir1.Path的第一個子目錄具有ListIndex值0。如圖7.18所示,若第一級子目錄有多個目錄,則每個目錄的ListIndex值按1、2、3……的順序依次排列。
新聞熱點
疑難解答