残棋大九连环:VB6控件LISTVIEW使用指南

来源:百度文库 编辑:中财网 时间:2024/04/29 22:58:20
 功---- VB6无疑是当前最先进的编程工具之一,无论是它的代码编写还是与视窗98的完美结合, 都令人们特别是程序员们赞叹不已。在这里,我将自己在编程实践中对LISTVIEW控件的一些使用经验和心得体会与广大的同仁们作以探讨,希望大家批评指正,或者有所借鉴。

---- 在VB6专业版或者企业版中,LISTVIEW控件并不是默认的工具箱的配置项目,你必须要手工添加---单击"工程"菜单项目,选择"部件",在部件对话框的"控件"栏目中选择"MICROSOFT WINDOWS COMMON CONTROLS 6.0",确认在它前面的复选框中有一个黑色的对号,单击"确认" 按钮,这时你的工具箱中便添加了几个控件,其中,有五个空心圆圈的便是LISTVIEW控件了, 当然怎么把它添加到窗体上就不用我多说了吧。

---- 我个人认为,作为一个增强功能的列表框,它的本质是用来显示更多的信息的.因此, 在这篇文章中,我着重介绍它VIEW属性的LVWREPORT(报表)值的使用.至于它的外观怎样设计,诸位当然可以随心所欲了.为了直观一点,我举一个应用实例来说明。

---- 设计完成后的主界面参见图一,它实际上是一个增强功能的文件浏览器。

---- 首先新建一个标准EXE工程,主窗体名称为FRMMAIN,添加一个驱动器列表框DRIVE1,一个文件列表框FILE1(设置VISIBLE属性FALES,PATTERN属性(*.EXE;*.DLL)),一个目录列表框DIR1,一个增强列表框LISTVIEW1,一个IMAGE控件IMAGE1和一个IMAGELIST控件IMALIST1,在IMALIST1控件上单击右键,设计IMAGELIST控件,添加一个你最喜欢的图标(最好使用ICON图标),索引为一。在主窗体FRMMAIN的通用声明段输入以下代码:

Dim clmX As ColumnHeader;标题栏

Dim itmX As ListItem;列表项目

Dim Counter As Long;计数器

Dim Fname As String;读取文件名

Dim dname As String;增强列表框完整路径名称

Public CurrentDir As String;完整的目录名称

在主窗体的LOAD事件中写入以下代码:

Private Sub Form_Load()

Me.Caption = App.Title;

窗体的标题为生成可执行文件的标题

Me.Left = (Screen.Width - Me.Width) / 2

Me.Top = (Screen.Height - Me.Height) / 2;

窗体位置在屏幕中间

ListView1.ColumnHeaders.Add ,

, "文件名称",ListView1.Width / 3, 0

’第一个标题栏是“文件名称“,长度为ListView1

宽度的三分之一,文字左对齐

Set clmX = ListView1.ColumnHeaders.Add(,

, "序号", ListView1.Width / 5, 2)

’第二个标题栏是“序号“ 依次往下

Set clmX = ListView1.ColumnHeaders.Add(,

, "文件大小 ", ListView1.Width / 4, 1)

Set clmX = ListView1.ColumnHeaders.Add(,

, "创建时间", ListView1.Width / 3, 0)

ListView1.BorderStyle = ccFixedSingle;边界类型ListView1.SmallIcons = ImageList1 ;

关联图标仓库ImageList1

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(Fname));

文件长度

itmX.SmallIcon = 1;列表项目图标

itmX.SubItems(3) = Format(FileDateTime(Fname),

"hh:mm yyyy/MMMM/dd");文件创建时间

Next Counter

ListView1.View = lvwReport;报表类型

ListView1.Arrange = 0

ListView1.LabelWrap = False

Dir1.ToolTipText = "当前目录是:" & Dir1.Path

END SUB

双击驱动器列表框,输入以下代码:

Private Static Sub Drive1_Change()

On Error GoTo IFerr;拦截错误

Dir1.Path = Drive1.Drive;关联目录列表框

Exit Sub

IFerr:;如果磁盘错误

MsgBox ("请确认驱动器是否准备好或者磁盘已经不可用!"),

vbOKOnly + vbExclamation

;弹出注意对话框

Drive1.Drive=Dir1.Path;忽略驱动器改变

End Sub

双击目录列表框,输入以下代码:

Private Static Sub Dir1_Change()

File1.Path = Dir1.Path;关联文件列表框

If Right(Dir1.Path, 1) < > "\" Then

CurrentDir = Dir1.Path & "\"

Else

CurrentDir = Dir1.Path

End If;设置选定的目录名称

ListView1.ListItems.Clear;清除过期的列表项目

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;添加增强列表框的各个项目

Dir1.ToolTipText = "当前目录是:" & Dir1.Path;提示

End Sub

---- 通过以下代码取得鼠标单击增强列表框返回的项目名称:

Private Sub ListView1_ItemClick(ByVal Item As

MSComctlLib.ListItem)allfname = Item;文件名

dname= CurrentDir& Item;完整的路径和文件名

sElectmain = ListView1.SelectedItem.Index;文件序号

End Su