VBA实战系列(ListView控件)

VBA项目实战__ListView控件应用

ListView控件是一款非常优秀的表格控件,被广泛应用于VBA项目。VBA使用者熟练地掌握此控件的用法,不仅能大大地增加自己学习VBA的兴趣,而且对实际工作也有很好的帮助。

一、Excel基础数据

二、实现效果

我们要通过VBA控件list view,实现如下图示效果

三、实现过程

(一)添加listview控件

1.打开VBE编辑器,新建窗体flist

2.添加listview控件。在工具箱中选择listview控件放入窗体。

如工具箱中没有该控件,则应查找注册MSCOMCTL.OCX 文件。我们可以按照以下方法进行注册:

1)将文件解压到“C:\WINDOWS\system32”(WindowsXP);

2)单击【开始】|【运行】命令,键入“regsvr32 C:\WINDOWS\system32 \MSCOMCTL.OCX ”(WindowsXP)”进行注册。

(二)添加代码

1.添加表头

Private Sub UserForm_Initialize()

ListView1.ColumnHeaders.Add , , "日期", 64, 0

ListView1.ColumnHeaders.Add , , "姓名", 54, 2

ListView1.ColumnHeaders.Add , , "性别", 42, 2

ListView1.ColumnHeaders.Add , , "年龄", 54, 2

ListView1.ColumnHeaders.Add , , "联系方式", 54, 2

ListView1.ColumnHeaders.Add , , "电话", 99, 2

ListView1.ColumnHeaders.Add , , "诊断", 54, 2

ListView1.ColumnHeaders.Add , , "手术名称", 86, 2

ListView1.View = lvwReport '显示格式为报表格式

ListView1.FullRowSelect = True '允许整行选中

ListView1.Gridlines = True '显示网格线

' ListView1.Sorted = True '排序

End Sub

以上代码中ListView1.ColumnHeaders.Add , , "日期", 64, 0中的64代表该表头字段的宽度,0代表居左显示方式。

【应用技巧】

在实际应用中,如何确定列宽对初学者来说是一个难点,这里给大家提供一个确定列宽的实用方法。通常ListView控件加载的数据都存放在一张excel工作表中,我们先在工作表中调整好列宽,然后用ListView 控件需要加载的excel表格的列宽作为相应ListView控件的列宽即可,求列宽可用以vba代码实现。个人具体做法见如下过程:

Sub 代码生成1__ListView标题头和列宽()

Dim sh As Worksheet, i

Set sh = Sheet1

Debug.Print "Private Sub UserForm_Initialize()"

For i = 1 To sh.Cells(1, Columns.Count).End(xlToLeft).Column

If i = 1 Then Debug.Print " ListView1.ColumnHeaders.Add , ,""" & sh.Cells(1, i) & """, " & Int(sh.Cells(1, i).Width) & ",0"

If i > 1 Then Debug.Print " ListView1.ColumnHeaders.Add , ,""" & sh.Cells(1, i) & """, " & Int(sh.Cells(1, i).Width) & ",2"

Next i

Debug.Print " ListView1.View = lvwReport" & Chr(10) & " ListView1.FullRowSelect = True" & Chr(10) & " ListView1.Gridlines = True" & Chr(10) & "End Sub"

' ListView1.ColumnHeaders.Add , , "日期", 64, 0 注释:对齐方式(0:左,1右,2居中),首先必须靠左,这是控件自身特性决定的

End Sub

立即窗口显示debug.print结果,可以复制此代码,是不是简单快捷很多。

2.加载数据

Sub ListDisp()

Dim cn As Object, rs As Object, sql As String, Itm

Set cn = CreateObject("ADODB.Connection") '连接数据库CreateObject("adodb.connection")

Set rs = CreateObject("ADODB.Recordset")

cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;HDR=yes;IMEX=2';data source=" & ThisWorkbook.FullName

sql = "Select * from [病例数据$A1:Q] "

rs.Open sql, cn, 1, 3

ListView1.ListItems.Clear '清除ListView记录

Do While Not rs.EOF

'数据加载代码开始

Set Itm = ListView1.ListItems.Add()

If Not IsNull(rs.Fields("日期")) Then Itm.Text = rs.Fields("日期")

If Not IsNull(rs.Fields("姓名")) Then Itm.SubItems(1) = rs.Fields("姓名")

If Not IsNull(rs.Fields("性别")) Then Itm.SubItems(2) = rs.Fields("性别")

If Not IsNull(rs.Fields("年龄")) Then Itm.SubItems(3) = rs.Fields("年龄")

If Not IsNull(rs.Fields("联系方式")) Then Itm.SubItems(4) = rs.Fields("联系方式")

If Not IsNull(rs.Fields("电话")) Then Itm.SubItems(5) = rs.Fields("电话")

If Not IsNull(rs.Fields("诊断")) Then Itm.SubItems(6) = rs.Fields("诊断")

If Not IsNull(rs.Fields("手术名称")) Then Itm.SubItems(7) = rs.Fields("手术名称")

If Not IsNull(rs.Fields("病理号")) Then Itm.SubItems(8) = rs.Fields("病理号")

If Not IsNull(rs.Fields("手术时间")) Then Itm.SubItems(9) = rs.Fields("手术时间")

If Not IsNull(rs.Fields("病理诊断")) Then Itm.SubItems(10) = rs.Fields("病理诊断")

If Not IsNull(rs.Fields("病情摘要")) Then Itm.SubItems(11) = rs.Fields("病情摘要")

If Not IsNull(rs.Fields("手术情况")) Then Itm.SubItems(12) = rs.Fields("手术情况")

If Not IsNull(rs.Fields("备注")) Then Itm.SubItems(13) = rs.Fields("备注")

If Not IsNull(rs.Fields("辅助检查")) Then Itm.SubItems(14) = rs.Fields("辅助检查")

If Not IsNull(rs.Fields("手术图片")) Then Itm.SubItems(15) = rs.Fields("手术图片")

If Not IsNull(rs.Fields("随访")) Then Itm.SubItems(16) = rs.Fields("随访")

'数据加载代码结束

rs.MoveNext

Loop

rs.Close

Set rs = Nothing

cn.Close

End Sub

【应用技巧】:

以上面代码相似,代码中存在大量类似重复的代码。一句句打字无疑影响效率。可以用以下代码生成部分代码:

Sub 代码生成2__Listview_item()

Dim sh As Worksheet, i%, s

Set sh = Sheet1

Debug.Print "Set Itm=ListView1.ListItems.Add()"

For i = 1 To sh.Cells(1, Columns.Count).End(xlToLeft).Column

s = Cells(1, i).Value

If i = 1 Then Debug.Print " if Not IsNull(rs.Fields(""" & s & """)) then Itm.Text = rs.Fields(""" & s & """)" '

If i > 1 Then Debug.Print " if Not IsNull(rs.Fields(""" & s & """)) then Itm.SubItems(" & i - 1 & ") = rs.Fields(""" & s & """)" '

Next i

End Sub

Debug立即窗口显示,复

通过以上两段代码,listview控件可以顺利加载并列表显示数据。

四、知识归纳

以上做法仅限于冬雨开发过程中的一点用法。为方便VBA爱好者学习,将listview控件相关知识归纳如下:(一)语法

ListView1.ColumnHeaders.Add(index, key, text, width, alignment, icon)

Add 方法的语法包含下面部分:

部分描述

object 必需的。对象表达式,其值是ColumnHeaders 集合。

index 可选的。唯一标识对象集合成员的整数。

key 可选的。唯一的字符串表达式,可以用来访问集合的成员。

text 可选的。出现在ColumnHeader 对象中的字符串。

width 可选的。数值表达式,它使用控件容器的度量单位指定对象的宽度。

alignment 可选的。决定ColumnHeader 对象中文本对齐方式的整数。关于设置信息,请参阅“请参阅列表中Alignment 属性的信息。

icon 可选的。Smallicons 图象列表中图象的关键字或索引。

说明Add 方法返回新插入的ColumnHeader 对象的引用。

使用index 参数在ColumnHeaders 集合的特定位置插入列标头。

当ColumnHeaders 集合成员可能动态变更时,应使用Key 属性引用它们,因为任何ColumnHeader 对象的Index 属性都可以改变。

(二)属性

1、对齐属性

ListView控件在初始化之前,为美观之需要,我们可以对每列数据排列格式进行设置,每列数据可或左对齐、或右对齐、或中间对齐,该项工作和加载表头同步进行,下面以加载“姓名”表头为例,其代码如下:

左对齐: ListView1.ColumnHeaders.Add , , "姓名", 40, lvwColumnLeft

右对齐: ListView1.ColumnHeaders.Add , , "姓名", 40, lvwColumnRight

中间对齐: ListView1.ColumnHeaders.Add , , "姓名", 40, lvwColumnCenter

这里需特别提醒ListView控件首列只能左对齐,否则代码会出现编译错误。

2、排序属性

ListView控件在初始化之前,可以根据用户需求对指定列进行排序,其代码如下:

ListView1.Sorted = True 'listivew的排序属性为True时, ListView控件将对指定列进行排序,属性为False 时ListView控件将不具有排序功能。

ListView1.SortKey = 0 ' 0为listivew排序的列索引号,0为第1列、1为第2列,以此类推,若此项属性值未设置,ListView控件将默认按首列排序。如果我们想点击

ListView表头排序,可用以下代码实现:

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)

If ColumnHeader.Index - 1 > -1 Then ListView1.SortKey = ColumnHeader.Index - 1

End Sub

3、显示方式设置

ListView控件除了可以对数据排列格式进行设置外,还可以对数据显示方式进行设置,常见的有日期显示方式、金额显示方式,以单元格F3数据加载给ListView控件第2列为例,其代码如下: 日期显示方式: Itm.subitem1(1) = Format(Cells(3, "F"), "YYYYY-MM-DD")

金额显示方式: Itm.subitem1(1) = Format(Cells(3, "F"), "#0.00")

4、选择ListView控件任意一行,获取行号

I = ListView1.SelectedItem.Index

5、获取ListView控件第I行,首列的值

ListView1.ListItems(I).Text

6、获取ListView控件第I行,J列的值

ListView1.ListItems(I).SubItems(J - 1)

7、删除ListView控件第I行数据

ListView1.ListItems.Remove I 8、删除ListView控件所有数据 ListView1.ListItems.Clear

9、获取ListView控件记录数ListView1.ListItems.Count

VB控件属性大全

1.01、窗体(FORM)的常用属性 属性说明 (Name)窗体的名称 ActiveControl返回焦点所在的控件,该属性设计阶段不可用,运行时只读。 Appearance 外观效果,取值为: 0 平面 1 3D(立体) AutoRedraw 是否自动刷新或重画窗体上所有图形[获得或设置从绘图(graphics)方法到一个持久性位图的输出],取值为: True False BackColor背景颜色,可从弹出的调色板选择。 BorderStyle 设置边界类型,取值为: 0 None(无边界框架) 1 FixedSingle(窗口大小固定不变的单线框架) 2 Sizable(窗口大小可变的标准双线框架) 3 FixedDialog(窗口大小固定的对话框窗体) 4 FixedToolWindow(窗口大小固定的工具箱窗体) 5 Sizable ToolWindow(窗口大小可变的工具箱窗体) Caption窗体的标题 ClipControls 决定Paint事件的graphics方法是重画整个对象,还是重画新显示的区域。取值为: True或False ControlBox 是或有控制框, 取值为:True 有 False 无 DrawMode 设定窗体上绘图(graphics方法),Shape,Line等控件的输出外观,有16种可选: 1 黑色 2 非或笔,设置值15的反相 3 与非笔,背景色以及画笔反相二者共有颜色的组合 4 非复制笔,设置值13的反相 5 与笔非,画笔以及显示色反相二者共有颜色的组合 6 反相,显示颜色反相 7 异或笔,画笔颜色以及显示颜色的异或 8 非与笔,设置值9的反相 9 与笔,画笔以及显示色二者共有颜色的组合

C_中的ListView控件实例教程

C#中的ListView控件实例教程 ListView可以通过四种不同的方式显示条目。 1.只能给ListV iew控件添加基于ListViewItem类的对象; 2.ListViewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本; 4.V iew属性:设置以下 ListView可以通过四种不同的方式显示条目。 1.只能给ListView控件添加基于ListViewItem类的对象; 2.ListV iewItems属性:设置用于显示的属性; 3.SubItems()方法:包含详细视图中显示的文本; 4.View属性:设置以下四种显示方式: Details:详细信息; List:列表; LargeIcon:大图标; SmallIcon:小图标。 5.Details视图需要为Columns属性使用Add()方法添加列。 例一: namespace ListViewExercise { public partial class Form1 : Form { public Form1() { InitializeComponent(); ListViewSet(); CreateViewItemMethodOne(); //CreateViewItemMethodTow(); } ///

/// ListView 设置 ///

private void ListViewSet() { //ListView显示方式 listViewControl.View = V iew.Details; } ///

/// //手动填加ListV iew方法1 /// private void CreateViewItemMethodOne() { listViewControl.BeginUpdate(); #region 增加Item的标题,共有三个列 //1、创建标题 listViewControl.Columns.Add("文件名"); listViewControl.Columns.Add("大小"); listViewControl.Columns.Add("创建日期"); #endregion #region 手动填加ListView方法 //2、增加第一个Item,在V iew.Details模式下,有点像第一列中一个值listViewControl.Items.Add("folder1","文件夹1",0); //3、增加第一个Item的第一个SubItem,在V iew.Details模式下,有点像第一列中一个值 listViewControl.Items["folder1"].SubItems.Add("11"); //增加第一个Item的第二个SubItem,在V iew.Details模式下,有点像第一列中一个值 listViewControl.Items["folder1"].SubItems.Add("20080114"); listViewControl.Items.Add("folder2","文件夹2",0); listViewControl.Items["folder2"].SubItems.Add("21"); listViewControl.Items["folder2"].SubItems.Add("20080115"); listViewControl.Items.Add("文件夹3"); listViewControl.Items.Add("文件夹4"); #endregion listViewControl.EndUpdate(); } /// /// 手动填加ListView方法2 /// private void CreateViewItemMethodTow() { #region 增加Item的标题,共有三个列 //1、创建标题,共三列 listViewControl.Columns.Add("文件名"); listViewControl.Columns.Add("大小"); listViewControl.Columns.Add("创建日期");

VB中ListView控件属性、方法、事件

VB ListView控件属性、方法、事件 常用属性: View设置或返回控件的视图类型 值说明 1-LvwIcon 图标类型 2-LvwSmallIcon 小图标类型 3-LvwList 列表类型 4-LvwReport 报表类型 Arrange 设置后返回控件的图标排列方式(在图标视图下有效) 值说明 1-LvwNone 不排列 2-LvwAutoLeft 自动靠右排列 3-LvwAutoTop 自动靠左排列 Icons、SmallIcons、ColumnHeaderIcons属性 Icons指定图标视图时的图标与ImageList的绑定 SmallIcons、ColumnHeaderIcons指定列表视图时的图标与ImageList 的绑定 PICTURE、PictureAlignment属性 分别指定ListView控件的背景图片和布局方式 ListItems(Index) 属性 ListItems 属性是ListView控件中列表项的集合。Index用于指定列表项集合中的一个对象, 我们可以把这个对象看作对一行的引用 ListItems集合的属性 1. Text 设置或返回显示文本 2. key 关键字 3. index 索引编号 4. icon , smallicon 不同视图时显示单元格的图标 5. checked 给checkboxes 打√ 6. selected 使处于选定状态 7. ListSubitems(index)集合我们可以把这个集合看作对这行中单元格的引用 Text 设置或返回单元格显示的内容 Reporticon 设置单元格的图标 8.Subitems(index) 设置或返回单元格文本== ListSubitems (index).text ColumnHeaders(index) 属性

C#中ListView控件应用实例

C#中 ListView 控件应用实例
ListView 控件 1. 功能 ListView 控件可以显示带图标的项列表,用户可使用该控件创建类似 Windows 资源管理器的用户界面。ListView 控件具有 4 种视图模式: (1)仅文本,这是默认视图,此视图下,只显示列表项的文本; (2)带有小图标的文本,此视图下,小图标随列表项的文本同时显示; (3)带有大图标的文本,此视图下,大图标随列表项的文本同时显示; (4)报表视图,此视图下,列表项显示在多个列中。 图 1 为 List View 控件。
图1
ListView 控件
2.属性 ListView 控件常用属性及说明如表 1 所示。
表1
ListView 控件常用属性及说明
下面对比较重要的属性进行详细介绍。 (1)View 属性。用于获取或设置项在控件中的显示方式。 语法: public View View { get; set; } 属性值:View 值之一。默认为 LargeIcon。 View 的属性值及说明如表 2 所示。

表2
View 的属性值及说明
(2)FullrowSelect 属性。用于指定是只选择某一项,还是选择某一项所在的 整行。 语法: public bool FullRowSelect { get; set; } 属性值:如果单击某项会选择该项及其所有子项,则为 True;如果单击某 项仅选择项本身,则为 False。默认为 False。 说 明 : 除 非 将 ListView 控 件 的 View 属 性 设 置 为 Details , 否 则 FullRowSelect 属性无效。在 ListView 显示带有许多子项的项时,通常使用 FullrowSelect 属性,并且,在由于控件内容的水平滚动而无法看到项文本时, 能够查看选定项是非常重要的。 (3)GridLines 属性。指定在包含控件中项及其子项的行和列之间是否显示网 格线。 语法: public bool GridLines { get; set; } 属性值:如果在项及其子项的周围绘制网格线,则为 True;否则为 False。 默认为 False。 说明:除非将 ListView 控件的 View 属性设置为 Details,否则 GridLines 属性无效。 示例 FullrowSelect 属性 本示例主要介绍 View 属性和 FullrowSelect 属性的使用方法,示例运行结 果如图 2 所示。

VB常用控件属性,事件

vb内部控件使用方法总结 内部控件 控件在VB程序设计中扮演重要的角色,它是VB程序的基本组成部分。合理恰当地使用各种不同的控件,以及熟练掌握各个控件的属性设置,是进行VB程序设计的基础。另外控件应用的好坏直接影响应用程序界面的美观性和操作的方便性。本章详细介绍VB的内部控件的使用方法。 4.1 标签 标签是VB中最简单的控件,用于显示字符串,通常显示的是文字说明信息。但不能编辑标签控件。 使用标签的情况很多,通常用标签来标注本身不具有Caption属性的控件。例如,可用标签为文本框、列表框、组合框等控件来添加描述性的标签。还可编写代码改变标签控件的显示文本以响应运行时的事件。例如,若应用程序需要用几分钟处理某个操作,则可用标签显示处理情况的信息。 4.1.1 常用属性 标签的属性很多,下面介绍几个常用的属性。 (1)Alignment属性 设置标签中文本的对齐方式。其使用语法如下: Object.Alignment[=值] 其中的“值”可以为0,1或2。0(默认值)表示左对齐;1表示右对齐;2表示居中。(2)AutoSize属性 设置控件是否能够自动调整大小以显示所有的内容。其使用语法如下:Object.AutoSize[=True或False] (3)BackStyle属性 设置标签的背景样式。其使用语法如下: Object.BackStyle[=值] 其中的“值”可以为0或1。1(默认值)表示是不透明的;0表示是透明的。 (4)BorderStyle属性 设置标签的边框样式。其使用语法如下: Object.BorderStyle[=值] 其中的“值”可以为0或1。0(默认值)表示无边框;1表示单线边框。 (5)Caption属性 设置标签的文本内容。其使用语法如下: Object.Caption[=字符串] (6)WordWrap属性 设置标签的文本在显示时是否自动折行功能。其使用语法如下: Object.WordWrap[=True或False] 其中True表示具有自动折行功能;False(默认值)表示没有自动折行功能。 4.1.2 常用事件和方法 一般很少使用标签事件,标签的方法中常用的只有Move,其基本语法如下:Move left,top,width,height 其中left,top,width,height分别表示移动目的位置的坐标和大小。left为必要参数,其他三个为可选参数。

vb,读取excel表格数据并在listview控件中显示

竭诚为您提供优质文档/双击可除 vb,读取excel表格数据并在listview 控件中显示 篇一:Vb用listView读取excel实例 Vb用listView读取excel实例 第一步:用excel创建成绩表,如下图示例 第二步:打开Vb6创建一工程、标准窗口 第三步:引用excel,在菜单栏,工程——引用,如下图 第四步:在工具栏加载控件microsoftwindowscommoncontrols6.0(sp6),如下图第五步:在标准窗口加入listview控件,控件属性设置如下图 在“列首”标签添加字段名,如下图 第五步:编写代码 dimxlappasexcel.application privatesubForm_load() setxlapp=createobject("excel.application") xlapp.Visible=False

xlapp.workbooks.openapp.path查找列中所有的单元格setlitem=listView1.listitems.add() litem.text=xlapp.Range("a"checkifemptydataRow blnnullRow=true Forinti=1to10 iftrim$(objimportsheet.cells(intcounti,inti).Value) ""then blnnullRow=False endif nextinti 若不是空行,则进行读取动作,否则继续向后遍历excel 中的行 ifblnnullRow=Falsethen 获取单元格中的数据,做有效性check,并将合法数据创建为实体存入对象数组中 objimportsheet.cells(intcounti,1).Value …… endif nextintcounti 5、退出excel进程,并关闭excel相关操作对象 objexcelFile.quit

C#中ListView的用法

C# 中LISTVIEW用法 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Items[0].Caption:='id'; ListView1.Columns.Items[1].Caption:='type'; ListView1.Columns.Items[2].Caption:='title'; ListView1.Columns.Items[2].Width:=300; Listview1.ViewStyle:=vsreport; Listview1.GridLines:=true; //注:此处代码也可以直接在可视化编辑器中完成, 也可写成以下这样 begin with listview1 do begin Columns.Add; Columns.Add; Columns.Add; ViewStyle:=vsreport; GridLines:=true; columns.items[0].caption:='进程名'; columns.items[1].caption:='进程ID'; columns.items[2].caption:='进程文件路径'; Columns.Items[0].Width:=100; Columns.Items[1].Width:=100; Columns.Items[2].Width:=150; end end; //增加记录 with listview1.items.add do begin caption:='1212'; subitems.add('hh1'); subitems.add('hh2'); end; //删除 listview1.items.delete(0);

VB6控件LISTVIEW使用指南

功---- 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;

C#中ListView的用法详解

C# ListView用法详解 分类:C#2012-08-27 18:44 91268人阅读评论(31) 收藏举报 一、ListView类 1、常用的基本属性: (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。 (2)GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。 (3)AllowColumnReorder:设置是否可拖动列标头来对改变列的顺序。(默认为false)提示:只有在Details视图该属性才有意义。 (4)View:获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为LargeIcon) (5)MultiSelect:设置是否可以选择多个项。(默认为false) (6)HeaderStyle:获取或设置列标头样式。 Clickable:列标头的作用类似于按钮,单击时可以执行操作(例如排序)。 NonClickable:列标头不响应鼠标单击。 None:不显示列标头。 (7)LabelEdit:设置用户是否可以编辑控件中项的标签,对于Detail视图,只能编辑行第一列的内容。(默认为false) (8)CheckBoxes:设置控件中各项的旁边是否显示复选框。(默认为false) (9)LargeImageList:大图标集。提示:只在LargeIcon视图使用。

(10)SmallImageList:小图标集。提示:只有在SmallIcon视图使用。 (11)StateImageList:图像蒙板。这些图像蒙板可用作LargeImageList和SmallImageList图像的覆盖图,这些图像可用于指示项的应用程序定义的状态。(暂时不大懂) (12)SelectedItems:获取在控件中选定的项。 (13)CheckedItems:获取控件中当前复选框选中的项。 (14)Soritng:对列表视图的项进行排序。(默认为None) Ascending:项按递增顺序排序。 Descending:项按递减顺序排序。 None:项未排序。 (15)Scrollable:设置当没有足够空间来显示所有项时是否显示滚动条。(默认为true) (16)HoverSelection:设置当鼠标指针悬停于项上时是否自动选择项。(默认为false) (17)HotTracking:设置当鼠标指针经过项文本时,其外观是否变为超链接的形式。(默认为false) (18)HideSelection:设置选定项在控件没焦点时是否仍突出显示。(默认为false) (19)ShowGroups:设置是否以分组方式显示项。(默认为false); (20)Groups:设置分组的对象集合。 (21)TopItem:获取或设置控件中的第一个可见项,可用于定位。(效果类似于EnsureVisible方法) 2、常用方法: (1)BeginUpdate:避免在调用EndUpdate方法之前描述控件。当插入大量数据时,可以有效地避免控件闪烁,并能大大提高速度。

VB中ActiveX控件的使用

第八章VB中ActiveX控件的使用 8.1 概述 这里的ActiveX控件是指VB标准工具箱里没有的控件,用时需从“工程”菜单里选择“部件…”(或右键单击工具箱,从快捷菜单中选择“部件…”),从部件窗口里勾上需要的控件。 1. 设置页框的外观样式 (1)先在窗体上画出一个TabStrip对象; (2)右击该对象,从快捷菜单中选择“属性”; (3)在TabStrip属性窗口里选择通用(General)标签,在样式(Style)列表框里选择样式; (4)在TabStrip属性窗口里选择选项卡(Tabs)标签,在标题(Caption)框里输入标题和关键字; (5)如果需要的话,在工具提示文本(ToolTipText)框里输入提示信息; (6)在TabStrip属性窗口里选择字体(Font)标签,设置标题的字体(可以直接采用默认值)。 2.增减标签总数 在TabStrip属性窗口里选择选项卡标签,单击插入选项卡按钮增加标签,单击删除选项卡按钮删除标签。 3.在TabStrip上显示图形 1) 在窗体里拖入一个图象列表(ImageList)控件; 2) 在此对象上右击,选择属性,打开属性页窗口; 3) 选择图象标签,单击插入图片按钮,在选定图片对话框里选择想使用的位图或图标,然后单击打开按钮;为每个想添加图形的选项卡重复此步; 4) 单击确定按钮,ImageList里就存储了需要的图片。 5) 选择TabStrip,进入TabStrip属性窗口并选择通用标签,在图象列表框里选择ImageList1;

6) 选择选项卡标签,单击紧挨索引框的向左或向右箭头以选择一个Tab序号。在图象框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形,单击确定按钮完成。 4.在TabStrip上放置其它控件 在窗体上象添加普通控件一样,把每一页需要的控件添上,控件不止一个时,应该用Frame来分组,注意:除了默认的第一页上的Frame控件外,其他所有Frame的Visible属性都应该设为假。 5.设计代码 在用户选择了标签后,TabStrip要求编写代码来显示或隐藏控件。可用类似下面的代码来识别用户在哪一个项目上单击。 Private Sub TabStrip1_Click() Select Case TabStrip1.SelectedItem.key Case 1 <选第一项时需要执行的代码> Case 2 <选第一项时需要执行的代码> …… End Select End Sub 例:Private Sub TabStrip1_Click() Select Case TabStrip1.SelectedItem.Key Case "statubar" Frame2.Visible = False Frame1.Visible = True Case "toolbar" Frame1.Visible = False Frame2.Visible = True End Select End Sub 8.2 状态栏(StatusBar)和工具栏(ToolBar) 1.状态栏的作用与组成 StatusBar 控件由Panel(窗格)对象组成,最多能被分成16 个Panel 对象,每一个Panel 对象能包含文本和/或图片。控制个别窗格的外观属性包括Width、Alignment(文本和图片的)和Bevel(斜面)。此外,能使用Style 属性七个值中的一个自动地显示公共数据,诸如日期、时间和键盘状态等。 2.创建状态栏 先在窗体上画出一个StatusBar对象,再右击该对象,从快捷菜单中选择“属性”,进入属性页设置窗口,进行下面的设置: (1)选择窗格形状 在属性窗口里选择通用标签,在样式列表框里选择多窗格(缺省形式)或单窗格简单文本形式。 (2)添加或删除状态栏窗格 在属性窗口里选择窗格标签,单击插入窗格按钮添加一个窗格,或单击删除窗格按钮删除一个窗格。 (3)在单窗格里显示文本 在属性窗口里选择通用标签,在简单文本框里输入想显示在状态栏窗格里的文本。用代码显示的方式是: StatusBar1.SimpleText = "要显示的内容" (4)在多窗格里显示文本或图形 1). 在属性窗口里选择窗格标签,用索引旁的按钮选择窗格序号。 2). 在文本框里输入想显示在状态栏窗格里的文本。用代码显示的方式是:StatusBar1.Panels(x).Text = "要显示的内容"

VB常用控件属性

VB常用控件属性 4.1 标签 标签是VB中最简单的控件,用于显示字符串,通常显示的是文字说明信息。但不能编辑标签控件。 使用标签的情况很多,通常用标签来标注本身不具有Caption属性的控件。例如,可用标签为文本框、列表框、组合框等控件来添加描述性的标签。还可编写代码改变标签控件的显示文本以响应运行时的事件。例如,若应用程序需要用几分钟处理某个操作,则可用标签显示处理情况的信息。 4.1.1 常用属性 标签的属性很多,下面介绍几个常用的属性。 (1)Alignment属性 设置标签中文本的对齐方式。其使用语法如下: Object.Alignment[=值] 其中的“值”可以为0,1或2。0(默认值)表示左对齐;1表示右对齐;2表示居中。 (2)AutoSize属性 设置控件是否能够自动调整大小以显示所有的内容。其使用语法如下: Object.AutoSize[=True或False] (3)BackStyle属性 设置标签的背景样式。其使用语法如下: Object.BackStyle[=值] 其中的“值”可以为0或1。1(默认值)表示是不透明的;0表示是透明的。 (4)BorderStyle属性 设置标签的边框样式。其使用语法如下: Object.BorderStyle[=值] 其中的“值”可以为0或1。0(默认值)表示无边框;1表示单线边框。 (5)Caption属性 设置标签的文本内容。其使用语法如下: Object.Caption[=字符串] (6)WordWrap属性 设置标签的文本在显示时是否自动折行功能。其使用语法如下: Object.WordWrap[=True或False] 其中True表示具有自动折行功能;False(默认值)表示没有自动折行功能。 4.1.2 常用事件和方法 一般很少使用标签事件,标签的方法中常用的只有Move,其基本语法如下: Move left,top,width,height 其中left,top,width,height分别表示移动目的位置的坐标和大小。left为必要参数,其他三个为可选参数。 4.1.3 应用例子 目的:设计一个窗体说明标签的基本应用方法。 首先创建本章工程,在其中添加一个窗体,在该窗体中放置一个标签Label1。该标签的基本属性如下: Name Label1 Caption "中华人民共和国" BorderStyle 1

VB ListView的使用

VB ListView的使用 ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7) ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以: ▲单击对象触发ColumnClick事件并根据数据项目将项目排序。 ▲拖动对象的右边框来调整列宽度。 ▲在报表视图中隐藏ColumnHeader对象。 ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。 ColumnHeader对象的SubItemIndex属性 该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex 属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。 在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。 ColumnHeader对象的Add方法 该方法的使用与前面那些控件基本相似,就不再介绍了。

VB6.0基本控件的属性

VB基本控件的属性,方法经及事件 VB基本控件的属性,方法经及事件 VB基本控件的属性,方法经及事件 所有控件都具有的属性: 1、Name: 表示在代码中用来标识一个控件的名字。 2、Enabled: 表示一个控件是否可以响应一个事件,即该控件可不可用。 值为true: 可以响应;值为false: 不可以看见。 3、Visible: 表示一个控件是否可见。值为true:可以看见;值为false: 不可以看见。所有控件都有具有的事件: 1、KeyDown : 当用户按下键盘上一个键时发生的。 2、KeyUp : 在用户松开键盘上按下的键时发生的。 3、KeyPress : 在Key Down和Key Up事件之间发生。 4、MouseDown : 在鼠标被按下时触发的。 5、MouseUp :在用户松开鼠标键时发生的。 6、Click :在用户单击鼠标左键时发生的。 7、DblClick :在用户双击鼠标时发生的。 一、窗体(Form) 属性: 1、Caption: 表示窗体标题栏的文字。 2、BorderStyle: 一般情况下为默认值,若更改为下列值: 1)值为0:没有窗体标题栏 2)值为1:窗体运行之后不能改变大小 3、WindowState: 设置窗体的大小。 3)值为0:窗体正常大小 4)值为1:窗体最小化 值为2:窗体最大化 4、BackColor: 表示窗体的背景颜色 事件: 1、Initialize(初始化事件): 在窗体加载和显示之前触发,这个事件只触一次。 2、Load(加载事件): 用来完成窗体显示之前需要完成的动作。 3、Activate/Deactivate (激活/非激活事件):是用户在同一个应用程序的两个或多个窗体之间移动时触发的。 4、QueryUnload(条件卸载事件): 决定窗体是如何关闭的。 触发QueryUnload事件时Unload 的参数和因素有: 1)VbFormControlMenu值为0 :选中窗体控件菜单中的Close命令。 2)VbFormCode值为1 :从代码中调用Unload 语句。 3)VbAppWindows值为2 :终止当前的Windows操作系统。 4)VbFormMDIForm值为4 :因为终止MDI父窗体而导致MDI子窗体的终止。 5、Terminate(终止事件):在窗体的所有实例从内存中清除时发生,只触发一次。方法: 1、Load:加载窗体,但不在屏幕上显示 2、Unload:卸载窗体,既从屏幕上也从内存中清除窗体。 3、Show:加载窗体并在屏幕上显示窗体。Show分为:

ListView控件功能综合应用代码

ListView控件的报表功能应用代码 '功能;检查ListView控件是否已初始化 Public Function ListViewHead(ByRef ListViewName As ListView, ByRef ListView Array() As V ariant, ByV al ListViewTagName As String, ByV al IsCheckBoxes As Boolean) On Error GoTo ONERROR Static Initialize As Long Static ListViewTag() As V ariant Dim i As Long Dim Head As Boolean ReDim Preserve ListViewTag(Initialize) For i = 0 To UBound(ListViewTag) If ListViewTagName = ListViewTag(i) Then Head = True Exit For Else Head = False End If Next If Head = False Then Call MdlListView.ListViewInitialize(ListViewName, ListViewArray, IsCheckBoxes) '初始化控件 ListViewTag(Initialize) = ListViewTagName Initialize = Initialize + 1 End If Exit Function ONERROR: If Err.Number <> 0 Then Select Case Err.Number Case Else MsgBox "错误代码:" & Err.Number & " 错误描述:" & Err.Description, vbExclamation, "初始化" Erase ListViewTag End Select End If End Function

vb中listview的使用案例

Dim cn As ADODB.Connection Dim rs As ADODB.Recordset '定义一个连接对象和一个查询返回结果集 Set cn = New ADODB.Connection Set rs = New ADODB.Recordset '创建两个对象 cn.ConnectionString = "driver=SQL Server;server=IAN-PC;uid=sa;pwd=kingdee;database=CRM" cn.Open Dim sql As String sql = "select * from ian_1" rs.Open sql, cn ListView1.View = lvwReport ListView1.ColumnHeaders.Add , , "选择", 1000 ListView1.ColumnHeaders.Add , , rs(0).Name, 1000 ListView1.ColumnHeaders.Add , , rs(1).Name, 1000 ListView1.ColumnHeaders.Add , , rs(2).Name, 1000 ListView1.ColumnHeaders.Add , , rs(3).Name, 1000 ListView1.ColumnHeaders.Add , , rs(4).Name, 1000 '表头名称 ListView1.GridLines = True '显示网格 ListView1.Checkboxes = True '显示复选框 'ListView1.FullRowSelect = True 整行记录全选上 Dim a As Integer a = rs.RecordCount + 1 'MsgBox a Dim x As Integer x = 1 '取得rs的记录集 While Not rs.EOF And Not rs.BOF '如果记录集没有读完继续读 ListView1.ListItems.Add , , x '第一行选择复选框 ListView1.ListItems(x).SubItems(1) = rs(0).Value ListView1.ListItems(x).SubItems(2) = rs(1).Value ListView1.ListItems(x).SubItems(3) = rs(2).Value ListView1.ListItems(x).SubItems(4) = rs(3).Value ListView1.ListItems(x).SubItems(5) = rs(4).Value x = x + 1

VB常用控件

Label控件 Label 控件主要用于在窗体中显示提示信息,常与Text控件一起使用。 属性: Caption 表示标签的内容。 例:Label1.Caption="N&ame:" 控件在窗体中显示Name:,&号跟的字母是快捷键字母,即当我们按下Alt+A时,Label1的Click事件将会发生。 这种快捷键定义方法对于菜单和许多其它控件同样适用。 Font 表示控件的字体。 ForeColor 表示控件的当前颜色。 Enabled 表示控件是否使能。 =True 使能。 =False 禁止(控件显示为灰色)。 Visible 表示控件是否可见 =True 可见。 =False 不可见。 Top,Left,Width,Height 表示控件在窗体中的位置和尺寸。 事件: Click 当点击或按下快捷键时发生,常用于使和它一起使用的Text控件获得输入焦点。 例: Private Sub Label1_Click() Text1.SetFocus End Sub Text控件 Text控件接受用户的输入的字符串数据。 属性: Text 表示用户输入的内容。

例:Label1.Caption=Text1.Text 将Text1控件接收用户输入的数据通过Label1控件显示出来。 SelStart 表示用户选中一段文字的起始位置。第一个字符位置为0。SelLength 表示用户选中文字的长度。 SelText 表示用户选中文字的内容。 例:0123456789 这时:SelStart=5,SelLength=4,SelText="5678" MultiLine 表示是否是多行输入。 =True 是多行输入。 =False 不是多行输入(缺省) 。 ScrollBars 多行情况下是否需要滚动条。 =0 没有。 =1 有水平。 =2 有垂直。 =3 水平、垂直都有。 Password 表示口令字符。Text属性返回用户输入数据,屏幕上显示该字符。方法: SetFocus 使当前控件获得输入交点。 事件: KeyPress 当在控件上按下按键时发生。 Private Sub Text1_KeyPress(KeyAscii As Integer) End Sub KeyAscii 表示用户按键的ASCII码,如果在事件中将它改为0,则认为没有按键。 例:编写只允许输入数字的Text控件。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAsciiAsc("9") Then KeyAscii=0 End If

LISTVIEW控件的使用

类名:WC_LISTVIEW 类型:LVS_REPORT, LVS_NOCOLUMNHEADER, WS_VSCROLL, WS_HSCROLL, LVS_SHAREIMAGELISTS, LVS_SINGLESEL, LVS_SHOWSELALWAYS, WS_BORDER, and WS_TABSTOP,LVS_SORTASCENDING. 扩展类型:LVS_EX_BORDERSELECT, LVS_EX_CHECKBOXES, LVS_EX_DOUBLEBUFFER, LVS_EX_FLATSB, LVS_EX_FULLROWSELECT, LVS_EX_GRIDLINES, LVS_EX_HEADERDRAGDROP, LVS_EX_INFOTIP, LVS_EX_LABELTIP, LVS_EX_MULTIWORKAREAS, LVS_EX_ONECLICKACTIVATE, LVS_EX_REGIONAL, LVS_EX_SIMPLESELECT, LVS_EX_SUBITEMIMAGES, LVS_EX_TRACKSELECT, LVS_EX_TWOCLICKACTIVATE, LVS_EX_UNDERLINECOLD, LVS_EX_UNDERLINEHOT 相关数据结构: 结构成员: mask 指定可用成员。值可为0、1或多个下列值的组合 LVCF_FMT The fmt member is valid. LVCF_IMAGE Version 4.70. The iImage member is valid. LVCF_ORDER Version 4.70. The iOrder member is valid. LVCF_SUBITEM The iSubItem member is valid. LVCF_TEXT The pszText member is valid. LVCF_WIDTH The cx member is valid.

相关文档
最新文档