1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
要使用ListView控件,需要加入組件:
Microsoft Windows Common Controls 6.0
Windows資源管理器的右半部分,就是一個(gè)ListView控件。
作用
列出并列關(guān)系的對(duì)象及對(duì)象屬性。
ListView控件的對(duì)象層次結(jié)構(gòu)
ListView -整個(gè)控件
ColumnHeaders -標(biāo)題行
ColumnHeader -標(biāo)題列
ListItems -對(duì)象行集合
ListItem -對(duì)象行
ListSubItems -對(duì)象屬性集合
ListSubItem -對(duì)象屬性
注意:SubItems和ListSubItems的區(qū)別:SubItems是一個(gè)String數(shù)組;ListSubItems是一個(gè)集合。
屬性
View:設(shè)置ListView的外觀
Sorted:設(shè)置ListView中的對(duì)象集合是否排序。
SortKey:設(shè)置以第幾項(xiàng)排序。從零開(kāi)始。
SelectedItem:返回選中的對(duì)象的引用。
事件
AfterLabelEdit:編輯ListItem對(duì)象的標(biāo)簽時(shí)被觸發(fā)。
BeforeLabelEdit:編輯ListItem對(duì)象的標(biāo)簽后出發(fā)。
ColumnClick:?jiǎn)螕袅袠?biāo)題時(shí)觸發(fā)。參數(shù)中可以獲得被單擊的列對(duì)象。通常用于排序。
ItemClick:?jiǎn)螕裟承谢蚰矻istItem時(shí)觸發(fā)。參數(shù)中可以獲得被單擊的ListItem對(duì)象。
方法
FindItem:搜索ListItem對(duì)象。
參數(shù):
string:搜索字符串。
value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:開(kāi)始搜索的位置。
match:匹配方式。
HitTest:檢索位于特定坐標(biāo)處的ListItem對(duì)象。
ListView控件比前面幾種控件要復(fù)雜一些,通過(guò)此控件,可將項(xiàng)目組成帶有或不帶有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本。ListView控件是由ColumnHeader和ListItem對(duì)象所組成的,其中ColumnHeader對(duì)象的個(gè)數(shù)決定了控件的列數(shù),而ListItem對(duì)象的個(gè)數(shù)則決定了控件的行數(shù)。(圖7)
ColumnHeader對(duì)象是ListView控件中包含標(biāo)頭文字的項(xiàng)目。利用ColumnHeader對(duì)象,用戶(hù)可以:
▲單擊對(duì)象觸發(fā)ColumnClick事件并根據(jù)數(shù)據(jù)項(xiàng)目將項(xiàng)目排序。
▲拖動(dòng)對(duì)象的右邊框來(lái)調(diào)整列寬度。
▲在報(bào)表視圖中隱藏ColumnHeader對(duì)象。
ColumnHeader對(duì)象的數(shù)目決定每個(gè)ListItem對(duì)象可包含的子項(xiàng)目數(shù)目。刪除ColumnHeader對(duì)象后所有與列關(guān)聯(lián)的子項(xiàng)目也將被刪除,并且每個(gè)ListItem對(duì)象的子項(xiàng)目數(shù)組將平移以更新ColumnHeader的索引,而這將導(dǎo)致剩余的列標(biāo)頭SubItemIndex屬性的改變。
ColumnHeader對(duì)象的SubItemIndex屬性
該屬性返回與ListView控件中ColumnHeader對(duì)象關(guān)聯(lián)的子項(xiàng)目的索引。子項(xiàng)目是字符串?dāng)?shù)組,代表顯示在報(bào)表視圖中的ListItem對(duì)象的數(shù)據(jù)。第一列的列標(biāo)頭SubItemIndex屬性設(shè)置為0,這是因?yàn)樾D標(biāo)和ListItem對(duì)象的文字總出現(xiàn)在第一列中,而且它們被當(dāng)作ListItem對(duì)象而不是子項(xiàng)目。列標(biāo)頭數(shù)目取決于子項(xiàng)目數(shù)目。列標(biāo)頭數(shù)目總是比子項(xiàng)目數(shù)目多1。
在設(shè)計(jì)時(shí)可以利用屬性頁(yè)的“列首”選項(xiàng)卡將ColumnHeader對(duì)象添加到ListView控件中,在運(yùn)行時(shí)則用Add方法添加。
ColumnHeader對(duì)象的Add方法
該方法的使用與前面那些控件基本相似,就不再介紹了。
ListView1.ColumnHeader.Add(index,key,text,width,alignment)
ListItem對(duì)象是指控件中的一行(不包含標(biāo)頭行)的所有內(nèi)容。它也可包含文本和圖片,但是要使用圖片則必須通過(guò)Icons和SmallIcons屬性引用ImageList控件。
ListItem對(duì)象的SubItems屬性
返回或設(shè)置一個(gè)字符串(子項(xiàng)目)數(shù)組,它代表ListView控件中ListItem對(duì)象的數(shù)據(jù)。
ListItem對(duì)象可包含任意多個(gè)的關(guān)聯(lián)項(xiàng)目數(shù)據(jù)字符串(子項(xiàng)目),但每個(gè)ListItem對(duì)象子項(xiàng)目數(shù)目必須相同。每個(gè)子項(xiàng)目都對(duì)應(yīng)于相關(guān)的列標(biāo)頭,無(wú)法直接向子項(xiàng)目數(shù)組添加元素,只有通過(guò)ColumnHeaders的Add方法添加列標(biāo)頭的方法來(lái)添加子項(xiàng)目。
ListItem對(duì)象的Add方法
該方法添加ListItem對(duì)象到ListView控件的ListItems集合中并返回對(duì)新創(chuàng)建對(duì)象的引用。
它的語(yǔ)法如下:
ListItem1.Add(index,key,text,icon,smallIcon)
ListView控件的View屬性
ListView控件可使用四種不同視圖顯示項(xiàng)目,這可以用View屬性來(lái)確定。該屬性返回或設(shè)置ListView控件中ListItem對(duì)象的外觀。
ListView控件的SortOrder,SortKey和Sorted屬性
控件中的ListItem對(duì)象可以按要求進(jìn)行排序,與排序有關(guān)的屬性是SortOrder,Sorted和SortKey屬性。
SortOrder屬性返回或設(shè)置一個(gè)值,此值決定ListView控件中的ListItem對(duì)象以升序或降序排序。
SortKey屬性返回或設(shè)置一個(gè)值,此值決定ListView控件中的ListItem對(duì)象如何排序。
Sorted屬性返回或設(shè)置確定ListView控件中的ListItem對(duì)象是否排序的值。
下面的代碼說(shuō)明了如何創(chuàng)建ColumnHeaders和ListItem對(duì)象,SubItemIndex和SubItem屬性的使用方法以及如何排序。
Private Sub Form_load()
'確保ListView控件的view屬性為報(bào)表視圖。
ListView1.View=lvwReport
'添加三列。
ListView1.ColumnHeaders.Add,"Name","姓名"
ListView1.ColumnHeaders.Add,"Sex","性別"
ListView1.ColumnHeaders.Add,"Age","年齡"
'向控件添加ListItem對(duì)象。
Dim itmX As ListItem
'添加column1的名稱(chēng)。
Set itmX=ListView1.ListItems.Add(1,"ZL","張力")
'使用SubItemIndex將SubItem與正確的ColumnHeader關(guān)聯(lián)。使用關(guān)鍵字("Sex")指定正確的ColumnHeader。
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
'使用ColumnHeader關(guān)鍵字將SubItems字符串與
'正確的ColumnHeader關(guān)聯(lián)。
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
- 1 回答
- 0 關(guān)注
- 314 瀏覽
添加回答
舉報(bào)