ListView控件功能综合应用代码.docx

上传人:b****4 文档编号:3443175 上传时间:2022-11-23 格式:DOCX 页数:13 大小:18.15KB
下载 相关 举报
ListView控件功能综合应用代码.docx_第1页
第1页 / 共13页
ListView控件功能综合应用代码.docx_第2页
第2页 / 共13页
ListView控件功能综合应用代码.docx_第3页
第3页 / 共13页
ListView控件功能综合应用代码.docx_第4页
第4页 / 共13页
ListView控件功能综合应用代码.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ListView控件功能综合应用代码.docx

《ListView控件功能综合应用代码.docx》由会员分享,可在线阅读,更多相关《ListView控件功能综合应用代码.docx(13页珍藏版)》请在冰豆网上搜索。

ListView控件功能综合应用代码.docx

ListView控件功能综合应用代码

ListView控件的报表功能应用代码

'功能;检查ListView控件是否已初始化

PublicFunctionListViewHead(ByRefListViewNameAsListView,ByRefListViewArray()AsVariant,ByValListViewTagNameAsString,ByValIsCheckBoxesAsBoolean)

OnErrorGoToONERROR

StaticInitializeAsLong

StaticListViewTag()AsVariant

DimiAsLong

DimHeadAsBoolean

ReDimPreserveListViewTag(Initialize)

Fori=0ToUBound(ListViewTag)

IfListViewTagName=ListViewTag(i)Then

Head=True

ExitFor

Else

Head=False

EndIf

Next

IfHead=FalseThen

CallMdlListView.ListViewInitialize(ListViewName,ListViewArray,IsCheckBoxes)'初始化控件

ListViewTag(Initialize)=ListViewTagName

Initialize=Initialize+1

EndIf

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"初始化"

EraseListViewTag

EndSelect

EndIf

EndFunction

'入口参数;ListView1是ListView控件对象.

'入口参数;HeadArray()是个二维变体数组

'入口参数;IsCheckBoxes是否要显示复选框

'功能;ListView控件初始化为报表格式可通用初始化ListView控件

PrivateFunctionListViewInitialize(ByRefListView1AsListView,ByRefHeadArray()AsVariant,ByValIsCheckBoxesAsBoolean)

OnErrorGoToONERROR

DimitmXAsListItem'定义一个ListItem对象

DimclmXAsColumnHeader'添加ColumnHeaders。

列宽度等于控件的宽度

DimiAsLong

ListView1.ListItems.Clear'刷新ListView控件

ListView1.View=lvwReport'报表格式

ListView1.Gridlines=True'确定在“报表”视图中ListView控件是否显示网格线

ListView1.BorderStyle=ccFixedSingle'返回或设置对象的边框样式

ListView1.FullRowSelect=True'是否选择整行

SelectCaseIsCheckBoxes

CaseIs=True

ListView1.CheckBoxes=True'是否显示复选框

EndSelect

Fori=LBound(HeadArray)ToUBound(HeadArray)

SetclmX=ListView1.ColumnHeaders.Add(,,HeadArray(i,0),HeadArray(i,1))

Next

SetitmX=Nothing

SetclmX=Nothing

EraseHeadArray'清空内存空间

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"初始化"

EndSelect

EndIf

EndFunction

'

'入口参数;ListView1是控件名称

'入口参数;ArrayValue是动态数组

'功能;添加数据到ListView控件中

PublicFunctionInisFile(ByRefListView1AsListView,ByRefArrayValue()AsVariant)

OnErrorGoToONERROR

DimitmXAsListItem'定义一个ListItem对象

DimiAsLong

Fori=LBound(ArrayValue)ToUBound(ArrayValue)

SelectCasei

Case0

SetitmX=ListView1.ListItems.Add(,,ArrayValue(i))'文件名称

CaseElse

SelectCaseTypeName(ArrayValue(i))

Case"Date"

itmX.SubItems(i)=Format(ArrayValue(i),"yyyy-m-d")'文件属性日期

CaseElse

itmX.SubItems(i)=ArrayValue(i)'文件路径

EndSelect

SelectCaseArrayValue(i)

Case"取消复制","创建目录","目录更改"

itmX.ListSubItems.Item(i).ForeColor=vbRed'0xFF红色'vbBlue

EndSelect

EndSelect

Next

DoEvents'转让控制权给系统

SetitmX=Nothing

EraseArrayValue'清空内存空间

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

Case9,380,383

ResumeNext

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"添加数据到ListView控件中"

ResumeNext

EndSelect

EndIf

EndFunction

'入口参数;ListView1是ListView控件

'入口参数;ArrayValue是装载修改数据的数组

'功能;修改ListView控件中的数据

PublicFunctionUpdateListViewData(ByRefListView1AsListView,ByValRow,ByRefArrayValue()AsVariant)

OnErrorGoToONERROR

DimitmXAsListItem'定义一个ListItem对象

DimiAsLong

Fori=LBound(ArrayValue)ToUBound(ArrayValue)

SelectCasei

Case0

SetitmX=ListView1.ListItems(Row)'获取指定行

CaseElse

SelectCaseTypeName(ArrayValue(i))

Case"Date"

itmX.SubItems(i)=Format(ArrayValue(i),"yyyy-m-d")'文件属性日期

CaseElse

itmX.SubItems(i)=ArrayValue(i)'文件路径

EndSelect

SelectCaseArrayValue(i)

Case"取消复制","创建目录","目录更改"

itmX.ListSubItems.Item(i).ForeColor=vbRed'0xFF红色'vbBlue'更改指定列的字体颜色

EndSelect

EndSelect

Next

DoEvents'转让控制权给系统

SetitmX=Nothing

EraseArrayValue'清空内存空间

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"修改ListView控件中的数据"

ResumeNext

EndSelect

EndIf

EndFunction

功能;在一个ListView控件查询另一个ListView控件的指定的字符串,并选中所当前行

PrivateSubListView2_Click()

OnErrorGoToONERROR

DimstrFindMeAsString

IfListView2.ListItems.Count=0ThenExitSub

strFindMe=ListView2.ListItems(ListView2.SelectedItem.Index).Text’获取选定行的第一列的文本

’FindItem方法返回找到的项目的引用,所以必须创建对象变量并将找到的项目设置给它。

DimitmFoundAsListItem’FoundItem变量。

SetitmFound=ListView1.FindItem(strFindMe,lvwText,,lvwPartial)

’若未找到符合条件的ListItem则通知用户并退出。

如果找到ListItem,则使用EnsureVisible方法滚动控件,并选定ListItem。

IfitmFoundIsNothingThen’若没有匹配成功,则通知用户并退出。

MsgBox"Nomatchfound"

Else

itmFound.EnsureVisible’滚动ListView以显示找到的ListItem。

itmFound.Selected=True’选定ListItem。

ListView1.SetFocus’将焦点返回给控件以查看选择。

EndIf

SetitmFound=Nothing

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,App.ExeName

EndSelect

EndIf

EndSub

ListView控件的报图标功能应用代码

'入口参数;ListView1是ListView控件

'入口参数;ImageList1是装载图片的ImageList控件,必须先装载好待用图片

'功能;获取本机磁盘对象

PublicFunctionGetDriveObject(ByRefListView1AsListView,ByRefImageList1AsImageList)

OnErrorGoToONERROR

DimMyFsoAsObject'文件对象

DimMyDriveAsDrive'磁盘对象集合

DimitmXAsListItem

SetMyFso=CreateObject("Scripting.FileSystemObject")

ListView1.ListItems.Clear'刷新ListView控件

ListView1.View=lvwIcon'图标格式

ListView1.Icons=ImageList1'初始化ImageList1图像控件

ForEachMyDriveInMyFso.Drives

SelectCaseMyDrive.DriveType

Case1'移动盘

SetitmX=ListView1.ListItems.Add(,,UCase(MyDrive.DriveLetter)&":

\",1)

Case2'本地硬盘

SetitmX=ListView1.ListItems.Add(,,UCase(MyDrive.DriveLetter)&":

\",2)

Case4'本地光驱

SetitmX=ListView1.ListItems.Add(,,UCase(MyDrive.DriveLetter)&":

\",3)

EndSelect

Next

SetMyFso=Nothing:

SetMyDrive=Nothing:

SetitmX=Nothing

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"磁盘对象"

EndSelect

SetMyFso=Nothing:

SetMyDrive=Nothing:

SetitmX=Nothing

EndIf

EndFunction

'入口参数;ListView1是ListView控件对象

入口参数;TextArray是一个一维数组

'入口参数;ImageList1是装载图片的ImageList控件,必须先装载好待用图片

'功能;初始化ListView控件为图标格式

PublicFunctionListView_ICO(ByRefListView1AsListView,ByRefTextArray()AsVariant,ByRefImageList1AsImageList)

OnErrorGoToONERROR

DimForVAsLong

DimitmXAsListItem

ListView1.ListItems.Clear'刷新ListView控件

ListView1.View=lvwIcon'图标格式

ListView1.Icons=ImageList1'初始化ImageList1图像控件

ForForV=LBound(TextArray)ToUBound(TextArray)

SetitmX=ListView1.ListItems.Add(,,TextArray(ForV),1)

Next

SetitmX=Nothing

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"图标格式"

EndSelect

SetitmX=Nothing

EndIf

EndFunction

'入口参数;SqlString是查询语句

'入口参数;ListView1是控件对象

'入口参数;ConnectObject全局连接数据对象

'入口参数;ADObject是全局ADO对象,用于类模块查询用。

'功能;查询数据库数据并返回一个一维数组

PublicFunctionSelectDATA(ByValSqlStringAsString,ByRefListView1AsListView,ByRefConnectObjectAsConnect,ByRefADObjectAsObject)AsBoolean

OnErrorGoToONERROR

DimColAsLong

DimRecordsetAsADODB.Recordset

DimTempArray()AsVariant

SelectCaseConnectObject.GetRecordset_Data(SqlString,Recordset,ADObject)

Case0

MsgBox"没有数据可提供查询!

",vbExclamation,App.EXEName

SelectDATA=False

Case1

DoUntilRecordset.EOF

ForCol=0ToRecordset.Fields.Count-1

ReDimPreserveTempArray(Col)

TempArray(Col)=Recordset.Fields(Col).Value

DoEvents'转让控制权给系统

Next

CallInisFile(ListView1,TempArray)'添加数据到控件行中

EraseTempArray

Recordset.MoveNext

DoEvents'转让控制权给系统

Loop

Recordset.Close:

SetRecordset=Nothing:

SelectDATA=True

Case2

MsgBox"查询出错!

",vbExclamation,App.EXEName

SelectDATA=False

EndSelect

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"添加数据到ListView控件中"

ResumeNext

EndSelect

EndIf

EndFunction

'入口参数;ListView1是控件对象

'入口参数;Col是指定要查找相同值的列

'入口参数;Col_Value是要比较的值

'功能;检查ListView控件中指定列的值是否重复输入

PublicFunctionRemove_Repeat_Value(ByRefListView1AsListView,ByValColAsLong,ByValCol_ValueAsVariant)AsBoolean

OnErrorGoToONERROR

DimRAsLong

DimTempAsString

DimCAsLong

IfListView1.ListItems.Count>0Then

ForR=1ToListView1.ListItems.Count

IfCol=1Then'如果是指定第一列的值

Temp=ListView1.ListItems(R).Text'获取当前行的第一列的文本

Else

Temp=ListView1.ListItems(R).SubItems(Col)'获取当前行的指定的列的文本值

EndIf

DoEvents'转移控制权

'执行比较

IfStrComp(Trim(Temp),Col_Value,vbBinaryCompare)=0Then'找到相同值,就退出函数

MsgBoxCol_Value&"已经被添加到待禁止运行界面中,不需要重复添加!

",vbExclamation,"提示"

Remove_Repeat_Value=True

ExitFunction

EndIf

Next

Remove_Repeat_Value=False'循环完成如果没有找到相同值则返回假

Else

Remove_Repeat_Value=False

EndIf

ExitFunction

ONERROR:

IfErr.Number<>0Then

SelectCaseErr.Number

CaseElse

MsgBox"错误代码:

"&Err.Number&"错误描述:

"&Err.Description,vbExclamation,"指定列的值是否重复输入"

ResumeNext

EndSelect

EndIf

EndFunction

'入口参数;ListView1是控件对象

'入口参数;Col是指定要查找相同值的列

'入口参数;Col_Value是要比较的值

'功能;检查ListView控件中指定列的值是否重复输入

PublicFunctionRemove_Repeat_Value(ByRefListView1AsListView,ByValColAsLong,ByValCol_ValueAsVariant)AsBoolean

OnErrorGoToONERROR

'不要删除下面所有注释的行。

'DimstrFindMeAsString

'

'strFindMe=ListView2.ListItems(ListView2.SelectedItem.Index).Text'获取选定行的第一列的文本

'FindItem方法返回找到的项目的引用,所以必须创建对象变量并将找到的项目设置给它。

DimitmFoundAsListItem'“FoundItem变量”

SetitmFound=ListView1.FindItem(Col_Value,lvwText,,lvwPartial)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1