listview控件可有4種不同的視圖顯示方法,跟“資源管理器”里的“查看”方式相似:(1)無圖標;(2)小圖標;(3)列表;(4)報表式。
使用哪種視圖,可由該控件的view屬性設(shè)置控制。 其中“報表”視圖用來顯示記錄數(shù)據(jù)很適合。 listview控件包括listItem對象和ColumnHeader對象。 本人簡單理解為:listItem對象看成數(shù)據(jù)行;ColumnHeader對象看成列標題。 listItem對象(行)有兩部分:一部分是圖標和簡要描述的文本(第1列);另一部分是前者的子項文本信息(第2列,第3列......)。 而listItems即是對listItem對象集合(所有行)的引用。 故此,listItems(1) 可以表示為第1行; listitems(1).text 返回第1行第1列的文本值; listitems(1).subItem(1) 返回第1行第2列的文本值。 【 控件常用屬性 】 [1]view屬性 該屬性有4個值可設(shè)定: 1---小圖標視圖顯示 2---列表 3---報表 0---無圖標(默認) [2]AllowColumnReorder屬性 值設(shè)置.t.時,用戶可以用鼠標選中1列拖至其他地方進行重新排列。 [3]Checkboxes屬性 設(shè)置為.t.時,每一行數(shù)據(jù)前將顯示一復(fù)選框。 [4]FlatScrollBar屬性 設(shè)置為.f.時控件將顯示滾動條。 [5]FullRowSelect屬性 設(shè)置為.t.時可以整行地選擇數(shù)據(jù)。 [6]GridLines屬性 設(shè)置為.t.時控件將顯示網(wǎng)格線。(只作用于“報表”視圖) [7]HideColumnHeaders屬性 設(shè)置為.f.時,列標題可視,反之則不可視。 [8]HotTracking屬性 設(shè)置為.t.時,鼠標所在行將以高亮度顯示。 [9]Icons,SmallIcons屬性 兩者設(shè)置listview控件視圖相關(guān)聯(lián)的ImageList控件中的圖片。 Icons指明視圖為大圖標時的關(guān)聯(lián); SmallIcons指明視圖為小圖標時的關(guān)聯(lián)。 [10]LabelWrap屬性 設(shè)置為.t.時,文本標簽超出列寬時可換行。 [11]SelectedItem屬性 返回對所選ListItem對象(行)的引用。 [12]Sorted屬性 當值為.t.時,列表按字母排序。 [13]Picture屬性 指定控件的背景圖片,此屬性在控件自帶屬性設(shè)置框里設(shè)置。 ***************************************************************** 【 控件常用方法程序 】 [1]Add方法 添加listItem對象(行)到控件中。 語法格式: 控件ListItems集合.add(index,key,text,icon,smallIcon) [2]FindItem方法 查找并返回對控件中l(wèi)istItem對象的引用。 語法格式: 控件名.FindItem(string,value,index,match) ****************************************************************** 新建一表單,在表單里拖出一個ListView控件和一個ImageList控件。 選中ListView控件,單擊右鍵,選擇“ListViewCtrl Properties”,在General頁面框中選中下列復(fù)選框: LabelWrap:文本可換行 Checkboxes:顯示復(fù)選框 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控件&&&& &&設(shè)置顯示為報表視圖 this.view=3 &&添加和設(shè)置列標 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","規(guī)格",this.width/4) to clm4 store this.ColumnHeaders.Add(,"l15","計量單位",this.Width/8) to clm5 store this.ColumnHeaders.Add(,"l16","請購數(shù)量",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. &&鼠標停留行高亮度顯示 ****************************************************************** 將數(shù)據(jù)表添加到listview控件中顯示: 新建一表單方法程序 refresh_grid,可隨時調(diào)用刷新數(shù)據(jù)。 在其中加入下列代碼: L1=thisform.view1 L1.listItems.clear &&清除數(shù)據(jù) 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(規(guī)格) to bbb.subitems(3) store alltrim(計量單位) to bbb.subitems(4) store 請購數(shù)量 to bbb.subitems(5) store 使用日期 to bbb.subitems(6) store alltrim(請購用途) to bbb.subitems(7) endscan 注:若字段值為.null.時,添加時將出現(xiàn)錯誤提示。 請自行設(shè)置用函數(shù)加以判別。為.null.時可以空值添加。 ************************************************ 如何返回選定值: L1=thisform.view1 L1.selectedItem.text &&返回選定行第1列文本值 L1.selectedItem.index &&返回選定行的位置 L1.listItems(x).subItems(y) &&返回第x行,第y+1列文本值 ***** 如何用用命令設(shè)置復(fù)選框狀態(tài): thisform.view1.listItems(x).checked=.t. &&第x行復(fù)選框選定 ****************************************** 選定復(fù)選框時發(fā)生的事件itemcheck: LPARAMETERS item if item.checked=.t.&&判定當復(fù)選框選中 要執(zhí)行的語句 else 要執(zhí)行的語句 endif &&清除所有數(shù)據(jù) thisform.view1.listItems.clear &&清除選定行 L1=thisform.view1 L1.listitems.remove(L1.selectedItem.index) 得知所有行的總數(shù): L1.listitems.count |
|