---- 在VB6專業(yè)版或者企業(yè)版中,LISTVIEW控件并不是默認(rèn)的工具箱的配置項(xiàng)目,你必須要手工添加---單擊"工程"菜單項(xiàng)目,選擇"部件",在部件對話框的"控件"欄目中選擇"MICROSOFT WINDOWS COMMON CONTROLS 6.0",確認(rèn)在它前面的復(fù)選框中有一個黑色的對號,單擊"確認(rèn)" 按鈕,這時你的工具箱中便添加了幾個控件,其中,有五個空心圓圈的便是LISTVIEW控件了, 當(dāng)然怎么把它添加到窗體上就不用我多說了吧。
---- 我個人認(rèn)為,作為一個增強(qiáng)功能的列表框,它的本質(zhì)是用來顯示更多的信息的.因此, 在這篇文章中,我著重介紹它VIEW屬性的LVWREPORT(報表)值的使用.至于它的外觀怎樣設(shè)計(jì),諸位當(dāng)然可以隨心所欲了.為了直觀一點(diǎn),我舉一個應(yīng)用實(shí)例來說明。
---- 設(shè)計(jì)完成后的主界面參見圖一,它實(shí)際上是一個增強(qiáng)功能的文件瀏覽器。
---- 首先新建一個標(biāo)準(zhǔn)EXE工程,主窗體名稱為FRMMAIN,添加一個驅(qū)動器列表框DRIVE1,一個文件列表框FILE1(設(shè)置VISIBLE屬性FALES,PATTERN屬性(*.EXE;*.DLL)),一個目錄列表框DIR1,一個增強(qiáng)列表框LISTVIEW1,一個IMAGE控件IMAGE1和一個IMAGELIST控件IMALIST1,在IMALIST1控件上單擊右鍵,設(shè)計(jì)IMAGELIST控件,添加一個你最喜歡的圖標(biāo)(最好使用ICON圖標(biāo)),索引為一。在主窗體FRMMAIN的通用聲明段輸入以下代碼:
Dim clmX As ColumnHeader;標(biāo)題欄
Dim itmX As ListItem;列表項(xiàng)目
Dim Counter As Long;計(jì)數(shù)器
Dim Fname As String;讀取文件名
Dim dname As String;增強(qiáng)列表框完整路徑名稱
Public CurrentDir As String;完整的目錄名稱
在主窗體的LOAD事件中寫入以下代碼:
Private Sub Form_Load()
Me.Caption = App.Title;
窗體的標(biāo)題為生成可執(zhí)行文件的標(biāo)題
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2;
窗體位置在屏幕中間
ListView1.ColumnHeaders.Add ,
, "文件名稱",ListView1.Width / 3, 0
’第一個標(biāo)題欄是“文件名稱“,長度為ListView1
寬度的三分之一,文字左對齊
Set clmX = ListView1.ColumnHeaders.Add(,
, "序號", ListView1.Width / 5, 2)
’第二個標(biāo)題欄是“序號“ 依次往下
Set clmX = ListView1.ColumnHeaders.Add(,
, "文件大小 ", ListView1.Width / 4, 1)
Set clmX = ListView1.ColumnHeaders.Add(,
, "創(chuàng)建時間", ListView1.Width / 3, 0)
關(guān)聯(lián)圖標(biāo)倉庫ImageList1
For Counter = 0 To File1.ListCount - 1
Fname = File1.List(Counter);
獲取當(dāng)前目錄下符合條件的文件名
Set itmX = ListView1.ListItems.Add(,
, Fname)’文件名稱欄目
itmX.SubItems(1) = CStr(Counter + 1) +
"/" + CStr(File1.ListCount)’文件在列表框位置
itmX.SubItems(2) = CStr(FileLen(Fname));
文件長度
itmX.SmallIcon = 1;列表項(xiàng)目圖標(biāo)
itmX.SubItems(3) = Format(FileDateTime(Fname),
"hh:mm yyyy/MMMM/dd");文件創(chuàng)建時間
Next Counter
ListView1.View = lvwReport;報表類型
ListView1.Arrange = 0
ListView1.LabelWrap = False
Dir1.ToolTipText = "當(dāng)前目錄是:" & Dir1.Path
END SUB
雙擊驅(qū)動器列表框,輸入以下代碼:
Private Static Sub Drive1_Change()
On Error GoTo IFerr;攔截錯誤
Dir1.Path = Drive1.Drive;關(guān)聯(lián)目錄列表框
Exit Sub
IFerr:;如果磁盤錯誤
MsgBox ("請確認(rèn)驅(qū)動器是否準(zhǔn)備好或者磁盤已經(jīng)不可用!"),
vbOKOnly + vbExclamation
;彈出注意對話框
Drive1.Drive=Dir1.Path;忽略驅(qū)動器改變
End Sub
雙擊目錄列表框,輸入以下代碼:
Private Static Sub Dir1_Change()
File1.Path = Dir1.Path;關(guān)聯(lián)文件列表框
If Right(Dir1.Path, 1) < > "\" Then
CurrentDir = Dir1.Path & "\"
Else
CurrentDir = Dir1.Path
End If;設(shè)置選定的目錄名稱
ListView1.ListItems.Clear;清除過期的列表項(xiàng)目
For Counter = 0 To File1.ListCount - 1
Fname = File1.List(Counter)
Set itmX = ListView1.ListItems.Add
(, , Fname);添加文件名
itmX.SubItems(1) = CStr(Counter + 1) + "/"
+ CStr(File1.ListCount)
itmX.SubItems(2) = CStr(FileLen(CurrentDir & Fname))
itmX.SmallIcon = 1
itmX.SubItems(3) = Format(FileDateTime(CurrentDir
& Fname), "HH:MM YYYY/MMMM/DD")
Next Counter;添加增強(qiáng)列表框的各個項(xiàng)目
Dir1.ToolTipText = "當(dāng)前目錄是:" & Dir1.Path;提示
End Sub
---- 通過以下代碼取得鼠標(biāo)單擊增強(qiáng)列表框返回的項(xiàng)目名稱:
Private Sub ListView1_ItemClick(ByVal Item As
dname= CurrentDir& Item;完整的路徑和文件名
sElectmain = ListView1.SelectedItem.Index;文件序號
End Su