listview常用方法总结

listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似:(1)无图标;(2)小图标;(3)列表;(4)报表式。   
           使用哪种视图,可由该控件的view属性设置控制。   
           其中“报表”视图用来显示记录数据很适合。   
           
           listview控件包括listItem对象和ColumnHeader对象。   
           本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。   
           listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列......)。   
   
           而listItems即是对listItem对象集合(所有行)的引用。   
         
           故此,listItems(1)               可以表示为第1行;     
                 listitems(1).text          返回第1行第1列的文本值;     
                 listitems(1).subItem(1)    返回第1行第2列的文本值。   
   
   【    控件常用属性    】   
   
           [1]view属性   
                 该属性有4个值可设定:   
                       1---小图标视图显示   
                       2---列表   
                       3---报表   
                       0---无图标(默认)   
      
           [2]AllowColumnReorder属性   
                 值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列。   
   
           [3]Checkboxes属性   
                 设置为.t.时,每一行数据前将显示一复选框。   
           [4]FlatScrollBar属性   
                 设置为.f.时控件将显示滚动条。   
           [5]FullRowSelect属性   
                 设置为.t.时可以整行地选择数据。   
           [6]GridLines属性   
                 设置为.t.时控件将显示网格线。(只作用于“报表”视图)   
           [7]HideColumnHeaders属性   
                 设置为.f.时,列标题可视,反之则不可视。   
           [8]HotTracking属性   
                 设置为.t.时,鼠标所在行将以高亮度显示。   
           [9]Icons,SmallIcons属性   
                 两者设置listview控件视图相关联的ImageList控件中的图片。   
                 Icons指明视图为大图标时的关联;   
                 SmallIcons指明视图为小图标时的关联。   
         [10]LabelWrap属性   
                 设置为.t.时,文本标签超出列宽时可换行。   
         [11]SelectedItem属性   
                 返回对所选ListItem对象(行)的引用。   
         [12]Sorted属性   
                 当值为.t.时,列表按字母排序。 按照一定的顺序排列
         [13]Picture属性   
                 指定控件的背景图片,此属性在控件自带属性设置框里设置。   
         
   *****************************************************************   
   【    控件常用方法程序    】   
   
         [1]Add方法   
               添加listItem对象(行)到控件中。   
               语法格式:   
               控件ListItems集合.add(index,key,text,icon,smallIcon)   
         [2]FindItem方法   
               查找并返回对控件中listItem对象的引用。   
               语法格式:   
               控件名.FindItem(string,value,index,match)   
   
   ******************************************************************   
           新建一表单,在表单里拖出一个ListView控件和一个ImageList控件。   
           选中ListView控件,单击右键,选择“ListViewCtrl    Properties”,在General页面框中选中下列复选框:   
           LabelWrap:文本可换行   
           Checkboxes:显示复选框   
           FullRowSelect:整行选定   
           
           清除FlatScrollBar的选定,控件将显示滚动条。  
   **************************************************************   
   
           控件              name属性   
   ListView                  view1   
   ImageList                Image1   
   
   ***************************************************************   
   
           在表单的Init事件中加入下列代码:      
   
           &&&&将ImageList控件图片赋予Listview控件&&&&   
   
         thisform.view1.Icons=thisform.Image1.object   
         thisform.view1.smallIcons=thisform.Image1.object   
   
   ****************************************************************   
   
         在listview控件init事件中加入下列代码:   
   
         &&&初始化ListView控件&&&&   
         &&设置显示为报表视图   
         this.view=3   
         &&添加和设置列标   
         store    this.ColumnHeaders.Add(,"l11","序号",this.Width/7)    to    clm1   
         store    this.ColumnHeaders.Add(,"l12","物资编号",this.width/4)    to    clm2   
         store    this.ColumnHeaders.Add(,"l13","存货名称",this.Width/4)    to    clm3   
         store    this.ColumnHeaders.Add(,"l14","规格",this.width/4)    to    clm4   
         store    this.ColumnHeaders.Add(,"l15","计量单位",this.Width/8)    to    clm5   
         store    this.ColumnHeaders.Add(,"l16","请购数量",this.width/4)    to    clm6   
         store    this.ColumnHeaders.Add(,"l17","使用日期",this.Width/4)    to    clm7   
         store    this.ColumnHeaders.Add(,"l18","请购用途",this.width/4)    to    clm8   
         this.hottracking=.t.        &&鼠标停留行高亮度显示   
   
   ******************************************************************   
   
         将数据表添加到listview控件中显示:   
   
         新建一表单方法程序    refresh_grid,可随时调用刷新数据。   
         在其中加入下列代码:   
   
         L1=thisform.view1   
         L1.listItems.clear    &&清除数据   
         sele    请购表   
         scan   
                 &&添加listItem对象第1列图标和文本。   
                 store    L1.listItems.Add(,,序号,,1)    to    bbb   
                 &&添加第2,3...列文本   
                 store    alltrim(物资编号)    to    bbb.subitems(1)   
                 store    alltrim(存货名称)    to    bbb.subitems(2)   
                 store    alltrim(规格)    to    bbb.subitems(3)   
                 store    alltrim(计量单位)    to    bbb.subitems(4)   
                 store    请购数量    to    bbb.subitems(5)   
                 store    使用日期    to    bbb.subitems(6)   
                 store    alltrim(请购用途)    to    bbb.subitems(7)              
         endscan   
   
   
         注:若字段值为.null.时,添加时将出现错误提示。   
                 请自行设置用函数加以判别。为.null.时可以空值添加。   
   
   ************************************************   
   
         如何返回选定值:   
   
       L1=thisform.view1   
       L1.selectedItem.text    &&返回选定行第1列文本值   
       L1.selectedItem.index    &&返回选定行的位置   
       L1.listItems(x).subItems(y)    &&返回第x行,第y+1列文本值   
   
   *****  
   
       如何用用命令设置复选框状态:   
   
       thisform.view1.listItems(x).checked=.t.   
       &&第x行复选框选定   
   
   ******************************************   
   
       选定复选框时发生的事件itemcheck:   
   
       LPARAMETERS    item   
       if    item.checked=.t.&&判定当复选框选中   
             要执行的语句   
       else   
             要执行的语句   
       endif      
   
       &&清除所有数据   
       thisform.view1.listItems.clear   
      
       &&清除选定行   
       L1=thisform.view1   
       L1.listitems.remove(L1.selectedItem.index)   
   
       得知所有行的总数:   
       L1.listitems.count
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值