




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、ListView 控件可以用來顯示各項帶圖標(biāo)的列表,也可以用來顯示帶有子項的列表,Windows 操作系統(tǒng)的資源管理器中文件夾窗口就是最 好 的應(yīng)用例子。 如 下圖一所 示就是 “我 的電腦”中使用 ListView 控件來顯示本機所 有盤 符 :說明:可以通過 “查看 ”菜單來觀察其它三種顯示方式,這些都是ListView 的視圖模式之一。下面我們就先來了解下ListView 控件的基本應(yīng)用,在中的工具箱中, ListView 控件的圖標(biāo)如下圖二所示:1、 View 屬性ListView 控件作為一個可以顯示圖標(biāo)或者子項的列表控件,它最重要的屬性就是View 屬性,該屬性決定了以哪種視圖模式
2、顯示控件的項,這四種視圖模式分別如下:2、 LartIcon :大圖標(biāo)視圖模式,在項的文本旁顯示大的圖標(biāo),在控件寬度足夠的情況下,項是如圖一中的盤符一樣優(yōu)先以平行排列的,排列不完的則自動換行顯示在新行中。2、Smalllcon:小圖標(biāo)視圖模式,與大圖標(biāo)模式一樣,但是顯示的是小的圖標(biāo)。3、List:列表視圖模式,顯示小圖標(biāo),但是項是垂直排列的,只顯示單列。4、Details:詳細資料視圖模式,是最豐富的選項,它不但允許您查看項,還允許您查看為各項指定的任何子項。各項在網(wǎng)格中顯示,它們垂直排列且其子項會顯示在列中(帶有列標(biāo)頭)。對應(yīng)地,只有在 Details 視圖模式中起作用的控件屬性為: Gri
3、dLines 和FullRowSelect, GridLines 屬性指示在包含控件中項及其子項的行和列之間是否顯示網(wǎng)格線。 FullRowSelect 屬性指示單擊某項是否選擇其所有子項 ( 即整行選中),如下圖三所示便是GridLines 和 FullRowSelect 屬性都設(shè)置為 True 的情況:ListView 控件中還有一個HeaderStyle 屬性也是在 Details 視圖模式下才起作用, HeaderStyle 屬性指示列標(biāo)頭樣式, 它有下面三種顯示樣式:1、Clickable:列標(biāo)頭的作用類似于按鈕,單擊時可以執(zhí)行操作(例如排序)。3、 Nonclickable :列標(biāo)
4、頭不響應(yīng)鼠標(biāo)單擊。3、None:列標(biāo)頭在報表視圖中不顯示。2、 Items 屬性此外, ListView 控件最重要的屬性是Items 屬性,它包含了控件所有的存在的項。 SelectedItems 屬性是控件當(dāng)前選定項的集合,同時和它關(guān)聯(lián)的 SelectedIndices 屬性是控件中選定項的索引集合,如下示例所示,我們分別在SelectedItems 屬性和 SelectedIndices 屬性中獲取所選項索引,窗體上拖放了 ListView 控件和一個Button 控件,且已經(jīng)往 ListView 控件中添加了若干列和行,代碼如下:Private Sub Button1_Click(By
5、Val sender As , ByVal e As HandlesDim i As Integer = 0Dim str As String = ""Next (str)End Sub運行后顯示效果如下圖四所示:兩個屬性都能獲得所選項在控件中的索引,我們在實際應(yīng)用的時候可以靈活選擇使用它們中的一個,以達到簡化代碼的目的。3、 ListView 的其他重要屬性ListView 控件還有一些比較常用的重要屬性1、 Activation 屬性Activation 屬性指定用戶激活 ListView 控件中的項的方式,它包括三個可選值:OneClick:用戶必須單擊以激活項。光標(biāo)
6、更改為手形指針光標(biāo),項文本在用戶將鼠標(biāo)指針移動到項上時更改顏色。Standard:用戶必須雙擊以激活項。在用戶將鼠標(biāo)指針移動到項上時沒有提供任何反饋。TwoClick:用戶必須雙擊以激活項,項文本在用戶將鼠標(biāo)指針移動到項上時更改顏色。激活 ListView 中的項與只選擇項是不同的。當(dāng)激活某個項時,通常會在 ItemActivate 事件的事件處理程序中執(zhí)行一個操作。例如,當(dāng)激活某個項時,您可能會打開一個文件或顯示一個允許用戶對項進行編輯的對話框。通常,項的激活是通過用戶對它進行雙擊來實現(xiàn)的。如果 Activation屬性設(shè)置為 OneClick,那么單擊該項一次即可將其激活。將 Activa
7、tion屬性設(shè)置為 TwoClick與標(biāo)準(zhǔn)的雙擊不同,這是因為兩次單擊之間的時間間隔可以是任意的。注意 如果將 Activation 屬性設(shè)置為 或 ,則不管 LabelEdit 屬性的值是什么,都不允許進行標(biāo)簽編輯。設(shè)置 Activation 屬性實際上就是決定以何種方式來觸發(fā) ItemActivate 事件,如果我們需要在激活項的時候進行額外的操作,例如彈出一個關(guān)聯(lián)的對話框來,則可以在 ItemActivate 事件中編寫合適代碼來完成,如下代碼所示:Private Sub ListView1_ItemActivate(ByVal sender As Object, ByVal e As
8、Handles("你想做什么")'可以在這里添加我們需要的操作End Sub代碼運行后,我們激活選項,如下圖五所示:2、 LabelEdit 屬性LabelEdit 屬性指示用戶是否可以編輯控件中項的標(biāo)簽。當(dāng) LabelEdit 屬性設(shè)置為 true 時,用戶可以單擊項文本,將其選中,然后再次單擊項文本,將標(biāo)簽文本置于編輯模式,然后,用戶可以修改或替換項的文本標(biāo)簽。在用戶編輯項文本之前和之后,您可以使用 BeforeLabelEdit 和 AfterLabelEdit 事件來執(zhí)行任務(wù)。如果該屬性設(shè)置為true ,則無法修改子項的文本。要更改子項的文本,您可以在用戶雙
9、擊控件中的子項時為其顯示對話框。3、 LabelWrap 屬性LabelWrap 屬性指示當(dāng)項作為圖標(biāo)在控件中顯示時,項標(biāo)簽是否換行。當(dāng) LabelWrap 屬性設(shè)置為 true 時,如果需要,項文本會換至文本的下一行。如果文本長于兩行,則文本將縮短。如果用戶選擇了該項,則顯示所有項文本。如果LabelWrap 屬性設(shè)置為false ,則所有項文本都將顯示在單獨一行中。整個項文本在LabelWrap 設(shè)置為false 時顯示。只有在View 屬性設(shè)置為LargeIcon 或 SmallIcon 時才使用該屬性。4、 MultiSelect 屬性MultiSelect 屬性指示是否可以選擇多個項
10、。當(dāng) MultiSelect 屬性設(shè)置為true 時,可在 ListView 控件中選擇多個項。5、 Scrollable 屬性Scrollable 屬性指示在沒有足夠空間來顯示所有項時,是否顯示滾動條。6、 Sorting 屬性Sorting 屬性指示控件中項的排序順序。Sorting 屬性允許指定項在 ListView 控件中是否排序。 默認(rèn)情況下, 不執(zhí)行排序。 當(dāng) Sorting 屬性設(shè)置為Ascending 或 Descending 時,ListView 中的項自動按照升序字母順序(當(dāng)屬性設(shè)置為Ascending 時)或降序字母順序(當(dāng)屬性設(shè)置為Descending 時)進行排序。您
11、可以使用該屬性對 ListView 控件中顯示的項進行自動排序, 使用戶在大量項可用時更容易查找到項。 如果您要自己執(zhí)行對項的排序,而不使用 Sorting 屬性,可與 Sort 方法一起使用 ListViewItemSorter 屬性。7、 LargeImageList 屬性LargeImageList 屬性設(shè)置當(dāng)項以大圖標(biāo)在控件中顯示時使用的ImageList 。8、 SmallImageList 屬性SmallImageList 屬性設(shè)置當(dāng)項以小圖標(biāo)在控件中顯示時使用的ImageList。上面我們了解了 ListView 的一些主要屬性,下面我們來看如何使用它。四、向 ListView
12、控件添加項1、我們可以使用ListViewItem 集合編輯器來為控件添加項方法是在 ListView 控件的屬性窗口中選擇Items 屬性。2、還可以使用ListView控件的()方法來為它添加新的項,Add()方法的格式如下:Add(text,imageIndex)text 為要添加項所顯示的文本imageIndex 為可選參數(shù),指示所對應(yīng)ImageList 中的圖標(biāo)索引示例:為窗體添加一個ListView 控件,一個ImageList 控件,一個Button 控件,然后在代碼編輯器中添加如下代碼:Private Sub Button1_Click(ByVal sender As , By
13、Val e As HandlesDim mItem As ListViewItemDim i As Integer = 0For i = 0 To 3NextEnd Sub運行后,單擊按鈕,效果如下圖六所示:也可以使用如下代碼來添加Item,其運行效果是一樣的:Private Sub Button1_Click(ByVal sender As , ByVal e As HandlesDim item0 As New ListViewItem("item 0", 0)Dim item1 As New ListViewItem("item 1", 1)Dim
14、 item2 As New ListViewItem("item 2", 2)Dim item3 As New ListViewItem("item 3", 3)End Sub五、為ListView控件添加列標(biāo)題當(dāng)我們使用ListView控件的Details視圖模式的時候,就必須為控件添加對應(yīng)的列標(biāo)題,才能顯示出它所有的項。1、視圖模式下添加列標(biāo)題一般我們顯示一個列表的時候,其列標(biāo)題都應(yīng)該是固定的,所以我們可以在視圖模式中預(yù)先設(shè)置好列標(biāo)題,這樣比較直觀。先選中ListView控件,然后在它的屬性窗口中找到Columns屬性,單擊后面的省略符號,如下圖七所
15、示:然后在彈出的集合編輯器中添加和刪除列標(biāo)題即可,我們可以在編輯器的右邊中編輯對應(yīng)的列顯示的文本、寬度以及文字對齊方式,如下圖八所示:添加完列標(biāo)題之后記得把ListView控件的View屬性設(shè)置為 Details,才能顯示出列標(biāo)題來。2、使用代碼來添加列標(biāo)題我們可以使用方法來動態(tài)添加列標(biāo)頭,使用()方法來清除所有的列標(biāo)頭,如下代碼所示,動態(tài)添加四個列標(biāo)題,其中每個列頭的寬為50,Private Sub Button1_Click(ByVal sender As , ByVal e As Handles=TrueListV()End Sub1. Option Explicit2.Private
16、Sub Form_Load()3.=True4.5. Dim fName As String6. If Len = 3 Then7. fName = & " 學(xué)生名單.xls"8. Else9. 學(xué)生名單.xls"10. End If11. GetExcelData fName, ListView112. End Sub13. Private Sub GetExcelData(ByVal fileName As String, ByRef lvw As ListView)14. Dim MyXl As Object15. '測試Microsoft
17、Excel 的副本是否在運行。16. On Error Resume Next '延遲錯誤捕獲。17. '不帶第一個參數(shù)調(diào)用Getobject 函數(shù)將18. '返回對該應(yīng)用程序的實例的引用。19. '如果該應(yīng)用程序不在運行,則會產(chǎn)生錯誤。20. Set MyXl = GetObject(,"")21. If > 0 Then22. 如果發(fā)生錯誤則要清除Err 對象。23. Set MyXl = CreateObject("")24. End If25.26. Dim wsBook As Workbook27. Dim
18、 wsSheet As Worksheet28.29. Set MyXl = GetObject(fileName)30.31. '在此處對文件32. '進行操作。33. Set wsSheet = ("Sheet1")34.35. With wsSheet36. Dim row As Long37. row = .(xlCellTypeLastCell).row38.Dim i As Long39. Dim itmX As Listitem40. For i = 2 To row41. (1) =.Cells(i,3)42. (2) =.Cells(i,4
19、)43. (3) =.Cells(i,5)44. (4) =.Cells(i,6)45. Next46. End With47. = False48.49. Set MyXl = Nothing '釋放對該應(yīng)用程序50. '和電子數(shù)據(jù)表的引用。51. End Sub52. Private Sub ListView1_ItemClick(ByVal Item As53. Textl =54. Text2=(1)55. Text3=(2)56. Text4=(3)57. Text5=(4)58. End SubPublic Sub LVrefresh(Optional ByVal
20、StandardType As Boolean)Dim intRow As Integer, strTemp As StringDim fileNo As Integer, fileName As StringDim Fp As New FileSystemObjectDim strTs As TextStreamDim ListItemTemp As ListitemOn Error Resume NextfileNo = FreeFileWith ListView1 . .,"姓名".ColumnHeaders(1).Width = 1200.,"年齡&quo
21、t;.ColumnHeaders(2).Width = 900.,"職位”.ColumnHeaders(3).Width = 2000.,"聯(lián)系電話”.ColumnHeaders(4).Alignment = IvwColumnLeft.ColumnHeaders(4).Width = 2000intRow = 1fileName = IIf(Left, 1) = "",& "",& "")Set strTs = (fileName)strTemp =Do While = 0If intRow =
22、1 ThenSet ListItemTemp = .(, , strTemp)Else(intRow - 1) = strTempEnd IfIf intRow = 4 ThenintRow = 1ElseintRow = intRow + 1End IfstrTemp =LoopEnd WithEnd SubPrivate Sub Command1_Click()LVrefreshEnd SubPublic Sub LVrefresh(Optional ByVal StandardType As Boolean)Dim intRow As Integer, strTemp As String
23、Dim fileNo As Integer, fileName As StringDim Fp As New FileSystemObjectDim strTs As TextStreamDim ListItemTemp As ListItemOn Error Resume NextfileNo = FreeFileWith ListView1 . .,"姓名".ColumnHeaders(1).Width = 1200.,"年齡".ColumnHeaders(2).Width = 900.,"職位”.ColumnHeaders(3).Widt
24、h = 2000.,"聯(lián)系電話”.ColumnHeaders(4).Alignment = lvwColumnLeft.ColumnHeaders(4).Width = 2000intRow = 1fileName = IIf(Left, 1) = "",& "",& "")Set strTs = (fileName) strTemp =Do While = 0If intRow = 1 ThenSet ListItemTemp = .(, , strTemp)Else(intRow - 1) = strTe
25、mpEnd IfIf intRow = 4 ThenintRow = 1ElseintRow = intRow + 1End IfstrTemp =LoopEnd WithEnd SubPrivate Sub Command1_Click()LVrefreshEnd Sub常用屬性:View 設(shè)置或返回控件的視圖類型值 說明1-LvwIcon 圖標(biāo)類型2-LvwSmallIcon 小圖標(biāo)類型3-LvwList 列表類型4-LvwReport 報表類型Arrange 設(shè)置后返回控件的圖標(biāo)排列方式(在圖標(biāo)視圖下有效)值 說明1-LvwNone 不排列2-LvwAutoLeft 自動靠右排列3-Lv
26、wAutoTop 自動靠左排列Icons 、 SmallIcons 、 ColumnHeaderIcons 屬性Icons 指定圖標(biāo)視圖時的圖標(biāo)與ImageList 的綁定SmallIcons 、 ColumnHeaderIcons 指定列表視圖時的圖標(biāo)與ImageList 的綁定PICTURE 、 PictureAlignment 屬性分別指定 ListView 控件的背景圖片和布局方式ListItems(Index) 屬性ListItems 屬性是 ListView 控件中列表項的集合。 Index 用于指定列表項集合中的一個對象,我們可以把這個對象看作對一行的引用ListItems 集合
27、的屬性1. Text 設(shè)置或返回顯示文本2. key 關(guān)鍵字3. index 索引編號4. icon , smallicon 不同視圖時顯示單元格的圖標(biāo)5. checked 給 checkboxes 打 V6. selected 使處于選定狀態(tài)7. ListSubitems ( index ) 集合 我們可以把這個集合看作對這行中單元格的引用Text 設(shè)置或返回單元格顯示的內(nèi)容Reporticon 設(shè)置單元格的圖標(biāo)8. Subitems(index) 設(shè)置或返回單元格文本= ListSubitems ( index ) .textColumnHeaders(index) 屬性ColumnHea
28、ders 屬性是 ListView 控件中列標(biāo)頭的集合1. text 顯示標(biāo)題文本2. key3. index4. icon 指定標(biāo)題圖標(biāo)5. alignment 指定 index 列的對齊方式 (注意:第一列也就是列表項不能指定)6. position 返回當(dāng)前列的索引7. subitemindex 返回指定列的 listsubitem 索引TextBackgroud 屬性決定 text 的背景是透明還是ListView 的背景色值 0 lvwTransparent 透明1 lvw 不透明(用 listview 的背景色)Ghosted 屬性 logic決定是否虛狀HideColumnHea
29、ders 屬性隱藏表頭LabelWrap 屬性標(biāo)簽轉(zhuǎn)行 或 時才使用該屬性FullRowSelect整行顯示HotTracking熱點追蹤鼠標(biāo)指針自動調(diào)整為手型HoverSelection 屬性自動聚焦鼠標(biāo)指針自動調(diào)整為手型AllowColumnReorder 屬性值設(shè)置.t. 時,用戶可以用鼠標(biāo)選中1 列拖至其他地方進行重新排列Sorted 屬性當(dāng)值為.t. 時,列表按字母排序常用方法:(index,key,text,icon,smallicon)向 listitems 添加一列表項。Index 插入列表項的編號Key 插入列表項的關(guān)鍵字Text 插入列表項的文本Icon 當(dāng)為圖標(biāo)視圖時要求
30、顯示的圖標(biāo)Smallicon 當(dāng)為小圖標(biāo)視圖時要求顯示的圖標(biāo)Clear清除 listitems 集合中所有的列表項Remove 清除選定行L1=AllowColumnReorder 屬性1 列拖至其他地方進行重新排列值設(shè)置 .t. 時,用戶可以用鼠標(biāo)選中常用事件:AfterLabelEdit編輯當(dāng)前選擇的列表對象之后發(fā)生BeforeLabelEdit編輯當(dāng)前選擇的列表對象之前發(fā)生ItemClick單擊某一列表對象時發(fā)生參數(shù) item 對當(dāng)前列表項的引用事件AfterLabelEdit :編輯 ListItem 對象的標(biāo)簽時被觸發(fā)。BeforeLabelEdit :編輯 ListItem 對象的
31、標(biāo)簽后出發(fā)。ColumnClick :單擊列標(biāo)題時觸發(fā)。參數(shù)中可以獲得被單擊的列對象。通常用于排序。ItemClick :單擊某行或某ListItem 時觸發(fā)。參數(shù)中可以獲得被單擊的 ListItem 對象。方法FindItem :搜索 ListItem 對象。參數(shù):string :搜索字符串。value :在 ListItem 的哪部分中搜索( LvwText 、 LvwSubItem 、 LvwTag ); index :開始搜索的位置。match :匹配方式。HitTest :檢索位于特定坐標(biāo)處的 ListItem 對象。vb 中的實例Private Sub Form_load()
32、9;確保 ListView 控件的 view 屬性為報表視圖。=lvwReport'添加三列。'向控件添加ListItem 對象。Dim itmX As ListItem'添加 column1 的名稱。ColumnHeader'使用 SubItemIndex 將 SubItem 與正確的 ColumnHeader 關(guān)聯(lián)。使用關(guān)鍵字("Sex") 指定正確的("Sex").SubItemIndex)=" 男 "'使用 ColumnHeader 關(guān)鍵字將 SubItems 字符串與'正確的
33、ColumnHeader 關(guān)聯(lián)。("Age").SubItemIndex)="19"("Sex").SubItemIndex)=" 男 "("Age").SubItemIndex)="22"("Sex").SubItemIndex)=" 男 "("Age").SubItemIndex)="24"End SubPrivate Sub ListView1_ColumnClick(ByVal ColumnHeaderAsSelect CaseCase "Sex":=1=l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基站建設(shè)項目可行性研究報告(案例模板)
- 中國IT冷卻系統(tǒng)行業(yè)市場調(diào)研分析及投資戰(zhàn)略規(guī)劃報告
- 2024年陶瓷閥芯行業(yè)市場深度調(diào)研分析及投資前景研究預(yù)測報告目錄
- 2025年脈沖點焊機行業(yè)深度研究分析報告
- 2024-2025學(xué)年高中英語Unit4Sharing單元加餐練新人教版選修7
- 2025年可折疊電吹風(fēng)項目投資可行性研究分析報告
- 2024-2025學(xué)年高中數(shù)學(xué)第三章空間向量與立體幾何3.2.1用向量方法解決平行問題練習(xí)含解析新人教A版選修2-1
- 2024-2025學(xué)年高中地理第6章人類與地理環(huán)境的協(xié)調(diào)發(fā)展第2節(jié)中國的可持續(xù)發(fā)展實踐練習(xí)新人教版必修2
- 2024-2025學(xué)年高中生物專題4酶的研究與應(yīng)用課題2探討加酶洗衣粉的洗滌效果練習(xí)含解析新人教版選修1
- 2025年光學(xué)打孔玻璃項目投資可行性研究分析報告
- 裝飾材料復(fù)試清單
- 有限公司事業(yè)合伙人管理辦法
- 工余安健環(huán)管理制度
- 某學(xué)校食堂服務(wù)投標(biāo)書
- 空調(diào)維保服務(wù)項目質(zhì)量保障措施
- 《馬克思主義與社會科學(xué)方法論》課后思考題答案全
- 急性心肌梗塞
- 八年級地理下期教學(xué)計劃(星球地圖版)
- 休閑農(nóng)業(yè)與鄉(xiāng)村旅游(課件)
- 藍色科技風(fēng)半導(dǎo)體產(chǎn)業(yè)PPT模板
- 院感手衛(wèi)生培訓(xùn)課件
評論
0/150
提交評論