辽宁省初级会计报名:求LISTVIEW的用法? VB / 基础类 - CSDN社区 community.csd...

来源:百度文库 编辑:中财网 时间:2024/04/30 02:58:26
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