ListView控件

ListView控件
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方法

该方法的使用与前面那些控件基本相似,就不再介绍了。

ListView1.ColumnHeader.Add(index,key,text,width,alignment)

ListItem对象是指控件中的一行(不包含标头行)的所有内容。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。

ListItem对象的SubItems属性

返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。

ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。

ListItem对象的Add方法

该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用。

它的语法如下:

ListItem1.Add(index,key,text,icon,smallIcon)

ListView控件的View属性

ListView控件可使用四种不同视图显示项目,这可以用View属性来确定。该属性返回或设置ListView控件中ListItem对象的外观。

ListView控件的SortOrder,SortKey和Sorted属性

控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder,Sorted 和SortKey属性。

SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序。

SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序。

Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值。

下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序。

Private Sub Form_load()

'确保ListView控件的view属性为报表视图。

ListView1.View=lvwReport

'添加三列。

ListView1.ColumnHeaders.Add,"Name","姓名"

ListView1.ColumnHeaders.Add,"Sex","性别"

ListView1.ColumnHeaders.Add,"Age","年龄"

'向控件添加ListItem对象。

Dim itmX As ListItem

'添加column1的名称。

Set itmX=ListView1.ListItems.Add(1,"ZL","张力")

'使用SubItemIndex将SubItem与正确的ColumnHeader关联。使用关键字("Sex")指定正确的ColumnHeader。

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

'使用ColumnHeader关键字将SubItems字符串与

'正确的ColumnHeader关联。

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"

Set itmX=ListView1.ListItems.Add(1,"LF","李芳")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"

Set itmX=ListView1.ListItems.Add(1,"WW","王伟")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As

ComctlLib.ColumnHeader)

Select Case ColumnHeader.Key

Case "Sex":ListView1.SortKey=1

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

Case "Age":ListView1.SortKey=2

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

End Select

End Sub

七、带刻度滑块---Slider

Slider控件是一个包含滑块和可选择性刻度标记的窗口,可以通过拖动滑块,用鼠标单击滑块的任意一侧或者使用键盘移动滑块来选择一个值。

在选择离散数值或某个范围内的一组连续数值时,Slider控件十分有用。例如,无需键入数字,通过将滑块移动到刻度标记处,可以用Slider控件来输入数值。

Silder控件的大多数基本属性比较简单,我们这里重点介绍一些较有用而又常易忽略的属性。

TickStyle属性

该属性返回或设置Slider控件上显示的刻度标记的样式。

SelectRange,SelStart和SelLength属性

Slider控件可以选择某个范围内的数值,这就要用到SelectRange,SelStart和SelLength属性。

SelectRange属性决定Slider控件是否可以选择一个范围。如果SelectRange属性为True,SelStart为选定范围的起始值,SelLength为选定范围的长度。

如果SelectRange属性为False,则SelStart属性的设置值与&#118alue属性的设置值相同,SelLength属性无效。

下列代码允许在按住SHIFT键时,用鼠标拖动或单击Slider控件以选择一个范围。Private Sub Form_Load()

'设置slider控件的设置值

Slider1.Max=20

End Sub

Private Sub Slider1_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)

If Shift=1 Then '如果按住Shift键,则Slider1.SelectRange=True '打开SelectRange。Slider1.SelStart=Slider1.&#118alue'设置SelStart数值

Slider1.SelLength=0'设置先前的SelLength(如存在)为0。

End If

End Sub

Private Sub Slider1_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single) if Shift=1 Then

'如果在一点决定返回上一步,将发生错误。

On Error Resume Next

'否则使用SelStart和当前数值设置SelLength。

Slider1.SelLength=Slider1.&#118alue-Slider1.SelStart

Else

Slider1.SelectRange=False'如果松开SHIFT键。

End If

End Sub

在程序中,常用Slider控件来代替键盘输入数字,如下面的例子。

该例通过Slider控件来显示不同的长度。

Private Sub Form_Load()

Slider1.Min=0

Slider1.Max=50

Slider1.SmallChange=1

https://www.360docs.net/doc/a25998758.html,rgeChange=10

Slider1.TickFrequency=5

End Sub

Private Sub Slider1_Change()

Label1.Caption="长度是"&Format(Slider1.&#118alue/5,"#.00")&"厘米"

End Sub

==================

一、ListView使用简介

ListView控件是VB开发者非常喜爱的控件之一。作为Windows95公共控件组(COMCTL32.OCX)的成员,它经常与经常与TreeView、ImageList等控件联合使用。即用TreeView显示一个的树型结构,而用ListView显示选中的节点(Node)对象的记录集。

这是笔者在开发财务软件项目中的<<凭证管理>> 模块的一个用户界面。屏幕左边是一个TreeView控件,用来显示会计凭证的类别;右边是一个ListView,用来显示对应类别的凭证目录;上方是一个菜单条控件(MenuBar)和一个工具条控件(ToolBar);下方是一个状态栏控件(StatusBar),用来显示凭证数个当前日期。

大家可以看到图中所示的界面非常类似于Window95/98 的资源浏览器,Windows的界面风格做为一种标准已为广大用户所接受。而Windows操作系统的主要的优点就是为所有的应用程序提供了公用的界面。知道如何使用基于Windows的应用程序的用户,很容易学会使用其他应用程序。

这种使用Windows95公共控件组合的方法能够达到与Windows界面的一致性,所以在目前VB5.0应用程序的开发中经常使用。

二、填充大量结果集所遇到的问题

在实际应用开发中,经常用ListView填充一个数据库结果集(Record set)的内容。即先写一段SQL查询语句,产生一个结果集,然后将结果集的每一条记录用DO...LOOP循环语句中填到ListView中。

但是当结果集很大时(例如有5000条以上的记录) ,填充所需要的时间会很长。用户不得不等很长时间完成一个查询。所以在查询的过程中必须允许用户按Escape键退出。具体做法是在DO...LOOP循环体中加一条DoEvents函数,并写一段中断退出程序代码。

DoEvents函数的功能是:转让控制权,以便让操作系统处理其它的事件。这样在长时间的查询过程中,如果用户按了Escape键,将退出循环体,结束查询过程。

但是这样又会引发另外一个问题:由于DoEvents 可以让操作系统响应别的事件,循环体中填充每一条ListView项目(ListItem)的过程也会显示出来,所以在填充的过程中屏幕会不停的闪动,这种现象当然不能被用户所接受。如何解决这个问题呢?

三、解决方案

用WindowsAPI函数可以解决这个问题。首先对几个用到的API函数做一解释和说明。

1.GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

此函数的功能是获得一个指定对象窗口(Window) 的矩型框区域(rectangle)。

Hwnd为指定对象或窗体的句柄。LpRect为返回矩型框的结构(必须定义为结构类型的变量)。

2.ValidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

此函数的功能是使指定的矩型区域生效。这样会通知Windows不必对指定的区域进行重画(Redraw)。

3.InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long

此函数的功能是使指定的矩型区域无效。这样会通知Windows要对指定的区域进行重画。

具体实现的步骤如下:

1.在填充结果集之前先用GetClientRect函数获得ListView的显示区域。

2.在增加完一个显示项目(ListItem)后用ValidateRect 函数置这一区域为有效。这样Windows就不会显示每一条ListItem,屏幕闪动的现象就会消失。

3.在填充结果集之后,用InvalidateRect函数置这一区域为无效。这样Windows就会重画ListView的内容,结果集被完整的显示出来。

下面是笔者在项目开发中的一个程序实例。程序名为FillListView。该程序将填写一个Access数据库(FISCAL.MDB)的凭证表(Table)的内容到ListView中。

首先进入VB5.0,新建一个窗体(Form),名为Form1。

然后在Form中增加下列控件。

控件名Name

ListView Lvw

Imagelist imlList

Command Button。Command1

将ImageList控件中充填一个名为“item”的图象后与ListView控件关联。

在<<工程>>菜单命令条中进入“引用”对话框,选择“MicrosoftDAOObjectLibrary”

在Form的通用模块(Modle)中定义以下变量。

Private Type RECT ' 用来定义一个区域的坐标。

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

'- -

' Windows API 函数的声明。

Private Declare Function InvalidateRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long

Private Declare Function ValidateRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT) As Long

Private Declare Function GetClientRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT) As Long

Dim mbSearchCancel As Boolean

' 用来定义查询中断的标志。

' True 表示中止查询;False 表示正在查询。

将该Form 的KeyPreview 属性设为True,以控制窗体接收键盘事件。

然后在Form 的KeyPress 事件中写下列代码:

If KeyAscii = vbKeyEscape Then

mbSearchCancel = True

' 当用户按Escape 键时,置mbSearchCancel 变量为True。

' 表示结束查询。

在Command Button 的Click 事件中调用填充子程序:Call FillListView。子程序的代码为:

Private Sub FillListView()

'

Dim itmX As ListItem ' 定义一个ListView 的显示项目。

Dim sSQL As String ' 查询字串变量。

'

Dim rc As RECT ' ListView 的显示区域。

Dim wrkJet As Workspace ' 数据库工作空间。

Dim dbFISCAL As Database ' 数据库对象。

Dim RS As Recordset ' 数据结果集。

On Error GoTo ErrFillListView

Screen.MousePointer = vbHourglass

lvw.ListItems.Clear: ' 清除ListView 的内容。

'

' 定义ListView 的列头的名称。

With lvw.ColumnHeaders

.Add , , " 凭证编号", 800

.Add , , " 凭证日期", 1000

.Add , , " 凭证字号", 1000

.Add , , " 凭证类别", 800

.Add , , " 首行摘要", 1440

.Add , , " 借方金额合计", 1000, lvwColumnRight

'- - -

' 产生查询语句。

sSQL = "select voucher_id,voucher_number,voucher_date,voucher_type_shortname," sSQL=sSQL&"voucher_type_name,voucher_memo,voucher_amount from VOUCHER" sSQL = sSQL & "order by voucher_number"

' '- - -

' 打开一个数据库结果集。

Set wrkJet = CreateWorkspace("NewJetWorkspace", "admin", "", dbUseJet)

Set dbFISCAL = wrkJet.OpenDatabase("FISCAL.mdb")

Set RS=. dbFISCAL .Open sSQL,dbOpenForwardOnly

'

' 获得listview 的显示区域。

Call GetClientRect(lvw.hwnd, rc)

Do While Not RS.EOF()

DoEvents

If mbSearchCancel Then

' 中断退出

RS.Close: Set RS = Nothing ' 关闭、清除结果集。

mbSearchCancel = False

Screen.MousePointer = vbDefault

'- -

' 刷新ListView 的内容,显示已经查出的记录数。

Call InvalidateRect(lvw.hwnd, rc, True)

Exit Sub

End If

'- - -

' 增加一个显示项目ListItem。

With lvw.ListItems

Set itmX = .Add(, , "" & RS!voucher_number, "item", "item")

' 凭证编号

itmX.SubItems(1) = Format$("" & RS!voucher_date, "yyyy/mm/dd") ' 凭证日期

itmX.SubItems(2) = "" & RS!voucher_type_shortname & "-" —

' 凭证字号

& "" & RS!voucher_number

itmX.SubItems(3)="" & RS!voucher_type_name

' 凭证类别

itmX.SubItems(4)=""&RS!voucher_memo

' 首行摘要

itmX.SubItems(5)= Format$("" & RS!voucher_amount, "#,###.00") ' 借方合计金额

itmX.Tag = "" & RS!voucher_id

End With

'- -

' 避免显示区域的闪动现象。

Call ValidateRect(lvw.hwnd, rc)

RS.MoveNext

Loop

'

'- 刷新ListView 的内容。显示所有查出的记录数。

Call InvalidateRect(lvw.hwnd, rc, True)

'-

' 关闭、清除结果集。

RS.Close: Set RS = Nothing

creen.MousePointer = vbDefault

Exit Sub

ErrFillListView:

Screen.MousePointer = vbDefault

MsgBox Err & ":" & Error, vbInformation, Me.Caption

Exit Sub

End Sub

编写完毕后按F5 执行该程序,用鼠标点击CommandButton,将开始查询并填写凭证的内容到ListView 中去。

关于ListView 本文只是描述了它如何填充大量结果集的方法,它还有很多特性(property) 和方法(method),利用它们可以达到更完

美的显示效果,有兴趣的读者可以进一步研究。不管是开发什么样的应用程序,只有坚持面向用户、方便用户的原则,这样的软件才具有强大的生命力。

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,读取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 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方法 该方法的使用与前面那些控件基本相似,就不再介绍了。

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

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.

VBListView控件用法

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方法 该方法的使用与前面那些控件基本相似,就不再介绍了。 ListView1.ColumnHeader.Add(index,key,text,width,alignment) ListItem对象是指控件中的一行(不包含标头行)的所有内容。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。 ListItem对象的SubItems属性 返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。 ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。 ListItem对象的Add方法 该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用。 它的语法如下: ListItem1.Add(index,key,text,icon,smallIcon)

获取其它进程中LISTVIEW控件内容

获取其它进程中LISTVIEW控件内容 描述:获取其它进程中LISTVIEW控件内容 TAG: ListView Private Const MEM_RELEASE = &H8000 Private Const LVM_FIRST = &H1000 Private Const LVM_GETHEADER = LVM_FIRST + 31 Private Const LVM_GETITEMCOUNT = (LVM_FIRST + 4) Private Const LVM_GETITEM = (LVM_FIRST + 5) Private Const LVM_GETSTRINGWIDTH = (LVM_FIRST + 17) Private Const LVM_GETCOLUMN = (LVM_FIRST + 25) Private Const LVM_GETITEMTEXT = (LVM_FIRST + 45) Private Const HDM_FIRST = &H1200 Private Const HDM_GETITEMCOUNT = (HDM_FIRST + 0) Private Const HDM_ORDERTOINDEX = (HDM_FIRST + 15) Private Const PROCESS_QUERY_INFORMATION = 1024 Private Const PROCESS_VM_OPERATION = &H8 Private Const PROCESS_VM_READ = &H10 Private Const PROCESS_VM_WRITE = &H20 Private Const STANDARD_RIGHTS_REQUIRED = &HF0000 Private Const MAX_LVMSTRING As Long = 255 Private Const MEM_COMMIT = &H1000 Private Const PAGE_READWRITE = &H4 Private Const LVIF_TEXT As Long = &H1 Private Const LVM_GETCOLUMNCOUNT = &HF11B Private Type LV_ITEMA mask As Long iItem As Long iSubItem As Long state As Long stateMask As Long pszText As Long cchTextMax As Long iImage As Long lParam As Long iIndent As Long End Type Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

Listview控件的图标设置

1-1 Listview控件的图标设置 ListView 控件作为一个可以显示图标或者子项的列表控件,可以在控件中显示自定义的图标,它最重要的属性就是View 属性,该属性决定了以哪种视图模式显示控件的项,请参阅技巧错误!未找到引用源。。 在ListView 控件中显示图标,需要在用户窗体中添加一个ImageList控件用于保存图像文件。关于ImageList控件的使用请参阅技巧错误!未找到引用源。。 以大图标模式显示ListView控件的代码如下: #001 Private Sub UserForm_Initialize() #002 Dim ITM As ListItem #003 Dim r As Integer #004 With ListView1 #005 .View = lvwIcon #006 .Icons = ImageList1 #007 For r = 2 To 6 #008 Set ITM = .ListItems.Add() #009 ITM.Text = Cells(r, 1) #010 ITM.Icon = r - 1 #011 Next #012 End With #013 Set ITM = Nothing #014 End Sub 代码解析: 在用户窗体中以大图标模式显示ListView控件,可使用鼠标拖放图标,并重新排列。 第5行代码将ListView控件的View属性设置为lvwIcon,大图标视图模式。 第6行代码使用ListView控件的Icons 属性建立与ImageList控件的关联。 第7行到第11行代码在ListView控件中添加ListItem对象,其中第10行代码设置使用ListItem对象的Icon属性指定其图像文件在ImageList控件中的编号。 ListView控件以大图标视图模式显示时如图错误!文档中没有指定样式的文字。-1所示。

VB常用控件的方法详细讲解

VB常用控件的方法详解.txt3努力奋斗,天空依旧美丽,梦想仍然纯真,放飞自我,勇敢地飞翔于梦想的天空,相信自己一定做得更好。4苦忆旧伤泪自落,欣望梦愿笑开颜。5懦弱的人害怕孤独,理智的人懂得享受孤独VB常用控件的方法详解 BASIC是属于高级程序语言的一种,英文名称的全名是"Beginner's All-Purpose Symbolic Instruction Code",取其首字字母简称"BASIC",就名称的含意来看,是「适用于初学者的多功能符号指令码」,是一种在计算机发展史上应用最为广泛的程序语言。 微软公司也在MS-DOS时代即推出Quick BASIC,在Windows开始流行的时候,微软公司推出Visual Basic for Windows成为Windows作业环境一枝独秀的易学易用程序语言。 Visual Basic是开发 Microsoft Windows 应用程序的最快方法。不论是对 Microsoft Windows 应用程序的专业开发者还是初学者来说,Visual Basic 都是一套不可多得的快速开发应用程序。它提供的控件可以轻松的"画"出应用程序的友好界面,使软件的开发工作不再枯燥无味。 在VisualBasic语言中,控件是用户界面的基本要素,是进行可视化程序设计的重要基础,它不仅关系到界面是否友好,还直接关系到程序的运行速度以及整个程序的好坏。每个控件都具有它的属性、方法和事件,要开发一个好的程序,不仅需要掌握控件的属性和事件,也要掌握它的方法。控件具有很多相同的方法,各个控件也有其特有的一些方法。 VisualBasic中的控件分为两种,即标准控件(或部控件)和ActiveX控件。部控件是工具箱中的"常驻"控件,始终出现在工具箱里,而ActiveX控件是扩展名为.ocx的文件(在Windows\System文件夹里),它是根据变成需要添加到工具箱里的。 在一般情况下,工具箱里只有标准控件,为了把ActiveX控件添加到工具箱里,可按以下步骤执行: (1)在菜单里选择"工程-部件",弹出"部件"对话框; (2)在对话框中选择"控件"选项卡,显示ActiveX控件列表; (3)在列表框中找到需要添加的控件名称,单击控件名称左侧的复选框; (4)使用同样的方法选择需要添加的其它控件; (5)单击"确定"按钮,即可将所选ActiveX控件添加到工具箱里。 第一章、标准控件的方法 1.01 窗体(Form)方法 1.02 文本框控件(Text)的方法 1.03 标签控件(Label)的方法 1.04 框架控件(Frame)的方法 1.05 命令按钮控件(Command)的方法 1.06 复选钮控件(Check)的方法 1.07 单选钮控件(Option)的方法 1.08 组合框控件(Combo)的方法 1.09 列表框控件(List)的方法 1.10 滚动条控件(HScrollBar和VScrollBar)的方法 1.11 文件系统(File System)控件的方法 1.12 形状控件(Shape)的方法 1.13 直线控件(Ling)的方法 1.14 图片框控件(Picture)的方法 1.15 图象控件(Image)的方法 1.16 数据控件(Data)的方法

相关文档
最新文档