ListView控件屬性與方法_第1頁
ListView控件屬性與方法_第2頁
ListView控件屬性與方法_第3頁
ListView控件屬性與方法_第4頁
ListView控件屬性與方法_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ListView 控件可以用來顯示各項帶圖標的列表,也可以用來顯示帶有子項的列表,Windows 操作系統(tǒng)的資源管理器中文件夾窗口就是最 好 的應用例子。 如 下圖一所 示就是 “我 的電腦”中使用 ListView 控件來顯示本機所 有盤 符 :說明:可以通過 “查看 ”菜單來觀察其它三種顯示方式,這些都是ListView 的視圖模式之一。下面我們就先來了解下ListView 控件的基本應用,在中的工具箱中, ListView 控件的圖標如下圖二所示:1、 View 屬性ListView 控件作為一個可以顯示圖標或者子項的列表控件,它最重要的屬性就是View 屬性,該屬性決定了以哪種視圖模式

2、顯示控件的項,這四種視圖模式分別如下:2、 LartIcon :大圖標視圖模式,在項的文本旁顯示大的圖標,在控件寬度足夠的情況下,項是如圖一中的盤符一樣優(yōu)先以平行排列的,排列不完的則自動換行顯示在新行中。2、Smalllcon:小圖標視圖模式,與大圖標模式一樣,但是顯示的是小的圖標。3、List:列表視圖模式,顯示小圖標,但是項是垂直排列的,只顯示單列。4、Details:詳細資料視圖模式,是最豐富的選項,它不但允許您查看項,還允許您查看為各項指定的任何子項。各項在網(wǎng)格中顯示,它們垂直排列且其子項會顯示在列中(帶有列標頭)。對應地,只有在 Details 視圖模式中起作用的控件屬性為: Gri

3、dLines 和FullRowSelect, GridLines 屬性指示在包含控件中項及其子項的行和列之間是否顯示網(wǎng)格線。 FullRowSelect 屬性指示單擊某項是否選擇其所有子項 ( 即整行選中),如下圖三所示便是GridLines 和 FullRowSelect 屬性都設置為 True 的情況:ListView 控件中還有一個HeaderStyle 屬性也是在 Details 視圖模式下才起作用, HeaderStyle 屬性指示列標頭樣式, 它有下面三種顯示樣式:1、Clickable:列標頭的作用類似于按鈕,單擊時可以執(zhí)行操作(例如排序)。3、 Nonclickable :列標

4、頭不響應鼠標單擊。3、None:列標頭在報表視圖中不顯示。2、 Items 屬性此外, ListView 控件最重要的屬性是Items 屬性,它包含了控件所有的存在的項。 SelectedItems 屬性是控件當前選定項的集合,同時和它關聯(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運行后顯示效果如下圖四所示:兩個屬性都能獲得所選項在控件中的索引,我們在實際應用的時候可以靈活選擇使用它們中的一個,以達到簡化代碼的目的。3、 ListView 的其他重要屬性ListView 控件還有一些比較常用的重要屬性1、 Activation 屬性Activation 屬性指定用戶激活 ListView 控件中的項的方式,它包括三個可選值:OneClick:用戶必須單擊以激活項。光標

6、更改為手形指針光標,項文本在用戶將鼠標指針移動到項上時更改顏色。Standard:用戶必須雙擊以激活項。在用戶將鼠標指針移動到項上時沒有提供任何反饋。TwoClick:用戶必須雙擊以激活項,項文本在用戶將鼠標指針移動到項上時更改顏色。激活 ListView 中的項與只選擇項是不同的。當激活某個項時,通常會在 ItemActivate 事件的事件處理程序中執(zhí)行一個操作。例如,當激活某個項時,您可能會打開一個文件或顯示一個允許用戶對項進行編輯的對話框。通常,項的激活是通過用戶對它進行雙擊來實現(xiàn)的。如果 Activation屬性設置為 OneClick,那么單擊該項一次即可將其激活。將 Activa

7、tion屬性設置為 TwoClick與標準的雙擊不同,這是因為兩次單擊之間的時間間隔可以是任意的。注意 如果將 Activation 屬性設置為 或 ,則不管 LabelEdit 屬性的值是什么,都不允許進行標簽編輯。設置 Activation 屬性實際上就是決定以何種方式來觸發(fā) ItemActivate 事件,如果我們需要在激活項的時候進行額外的操作,例如彈出一個關聯(lián)的對話框來,則可以在 ItemActivate 事件中編寫合適代碼來完成,如下代碼所示:Private Sub ListView1_ItemActivate(ByVal sender As Object, ByVal e As

8、Handles("你想做什么")'可以在這里添加我們需要的操作End Sub代碼運行后,我們激活選項,如下圖五所示:2、 LabelEdit 屬性LabelEdit 屬性指示用戶是否可以編輯控件中項的標簽。當 LabelEdit 屬性設置為 true 時,用戶可以單擊項文本,將其選中,然后再次單擊項文本,將標簽文本置于編輯模式,然后,用戶可以修改或替換項的文本標簽。在用戶編輯項文本之前和之后,您可以使用 BeforeLabelEdit 和 AfterLabelEdit 事件來執(zhí)行任務。如果該屬性設置為true ,則無法修改子項的文本。要更改子項的文本,您可以在用戶雙

9、擊控件中的子項時為其顯示對話框。3、 LabelWrap 屬性LabelWrap 屬性指示當項作為圖標在控件中顯示時,項標簽是否換行。當 LabelWrap 屬性設置為 true 時,如果需要,項文本會換至文本的下一行。如果文本長于兩行,則文本將縮短。如果用戶選擇了該項,則顯示所有項文本。如果LabelWrap 屬性設置為false ,則所有項文本都將顯示在單獨一行中。整個項文本在LabelWrap 設置為false 時顯示。只有在View 屬性設置為LargeIcon 或 SmallIcon 時才使用該屬性。4、 MultiSelect 屬性MultiSelect 屬性指示是否可以選擇多個項

10、。當 MultiSelect 屬性設置為true 時,可在 ListView 控件中選擇多個項。5、 Scrollable 屬性Scrollable 屬性指示在沒有足夠空間來顯示所有項時,是否顯示滾動條。6、 Sorting 屬性Sorting 屬性指示控件中項的排序順序。Sorting 屬性允許指定項在 ListView 控件中是否排序。 默認情況下, 不執(zhí)行排序。 當 Sorting 屬性設置為Ascending 或 Descending 時,ListView 中的項自動按照升序字母順序(當屬性設置為Ascending 時)或降序字母順序(當屬性設置為Descending 時)進行排序。您

11、可以使用該屬性對 ListView 控件中顯示的項進行自動排序, 使用戶在大量項可用時更容易查找到項。 如果您要自己執(zhí)行對項的排序,而不使用 Sorting 屬性,可與 Sort 方法一起使用 ListViewItemSorter 屬性。7、 LargeImageList 屬性LargeImageList 屬性設置當項以大圖標在控件中顯示時使用的ImageList 。8、 SmallImageList 屬性SmallImageList 屬性設置當項以小圖標在控件中顯示時使用的ImageList。上面我們了解了 ListView 的一些主要屬性,下面我們來看如何使用它。四、向 ListView

12、控件添加項1、我們可以使用ListViewItem 集合編輯器來為控件添加項方法是在 ListView 控件的屬性窗口中選擇Items 屬性。2、還可以使用ListView控件的()方法來為它添加新的項,Add()方法的格式如下:Add(text,imageIndex)text 為要添加項所顯示的文本imageIndex 為可選參數(shù),指示所對應ImageList 中的圖標索引示例:為窗體添加一個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控件添加列標題當我們使用ListView控件的Details視圖模式的時候,就必須為控件添加對應的列標題,才能顯示出它所有的項。1、視圖模式下添加列標題一般我們顯示一個列表的時候,其列標題都應該是固定的,所以我們可以在視圖模式中預先設置好列標題,這樣比較直觀。先選中ListView控件,然后在它的屬性窗口中找到Columns屬性,單擊后面的省略符號,如下圖七所

15、示:然后在彈出的集合編輯器中添加和刪除列標題即可,我們可以在編輯器的右邊中編輯對應的列顯示的文本、寬度以及文字對齊方式,如下圖八所示:添加完列標題之后記得把ListView控件的View屬性設置為 Details,才能顯示出列標題來。2、使用代碼來添加列標題我們可以使用方法來動態(tài)添加列標頭,使用()方法來清除所有的列標頭,如下代碼所示,動態(tài)添加四個列標題,其中每個列頭的寬為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 = & " 學生名單.xls"8. Else9. 學生名單.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ù)調用Getobject 函數(shù)將18. '返回對該應用程序的實例的引用。19. '如果該應用程序不在運行,則會產(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 '釋放對該應用程序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 設置或返回控件的視圖類型值 說明1-LvwIcon 圖標類型2-LvwSmallIcon 小圖標類型3-LvwList 列表類型4-LvwReport 報表類型Arrange 設置后返回控件的圖標排列方式(在圖標視圖下有效)值 說明1-LvwNone 不排列2-LvwAutoLeft 自動靠右排列3-Lv

26、wAutoTop 自動靠左排列Icons 、 SmallIcons 、 ColumnHeaderIcons 屬性Icons 指定圖標視圖時的圖標與ImageList 的綁定SmallIcons 、 ColumnHeaderIcons 指定列表視圖時的圖標與ImageList 的綁定PICTURE 、 PictureAlignment 屬性分別指定 ListView 控件的背景圖片和布局方式ListItems(Index) 屬性ListItems 屬性是 ListView 控件中列表項的集合。 Index 用于指定列表項集合中的一個對象,我們可以把這個對象看作對一行的引用ListItems 集合

27、的屬性1. Text 設置或返回顯示文本2. key 關鍵字3. index 索引編號4. icon , smallicon 不同視圖時顯示單元格的圖標5. checked 給 checkboxes 打 V6. selected 使處于選定狀態(tài)7. ListSubitems ( index ) 集合 我們可以把這個集合看作對這行中單元格的引用Text 設置或返回單元格顯示的內容Reporticon 設置單元格的圖標8. Subitems(index) 設置或返回單元格文本= ListSubitems ( index ) .textColumnHeaders(index) 屬性ColumnHea

28、ders 屬性是 ListView 控件中列標頭的集合1. text 顯示標題文本2. key3. index4. icon 指定標題圖標5. alignment 指定 index 列的對齊方式 (注意:第一列也就是列表項不能指定)6. position 返回當前列的索引7. subitemindex 返回指定列的 listsubitem 索引TextBackgroud 屬性決定 text 的背景是透明還是ListView 的背景色值 0 lvwTransparent 透明1 lvw 不透明(用 listview 的背景色)Ghosted 屬性 logic決定是否虛狀HideColumnHea

29、ders 屬性隱藏表頭LabelWrap 屬性標簽轉行 或 時才使用該屬性FullRowSelect整行顯示HotTracking熱點追蹤鼠標指針自動調整為手型HoverSelection 屬性自動聚焦鼠標指針自動調整為手型AllowColumnReorder 屬性值設置.t. 時,用戶可以用鼠標選中1 列拖至其他地方進行重新排列Sorted 屬性當值為.t. 時,列表按字母排序常用方法:(index,key,text,icon,smallicon)向 listitems 添加一列表項。Index 插入列表項的編號Key 插入列表項的關鍵字Text 插入列表項的文本Icon 當為圖標視圖時要求

30、顯示的圖標Smallicon 當為小圖標視圖時要求顯示的圖標Clear清除 listitems 集合中所有的列表項Remove 清除選定行L1=AllowColumnReorder 屬性1 列拖至其他地方進行重新排列值設置 .t. 時,用戶可以用鼠標選中常用事件:AfterLabelEdit編輯當前選擇的列表對象之后發(fā)生BeforeLabelEdit編輯當前選擇的列表對象之前發(fā)生ItemClick單擊某一列表對象時發(fā)生參數(shù) item 對當前列表項的引用事件AfterLabelEdit :編輯 ListItem 對象的標簽時被觸發(fā)。BeforeLabelEdit :編輯 ListItem 對象的

31、標簽后出發(fā)。ColumnClick :單擊列標題時觸發(fā)。參數(shù)中可以獲得被單擊的列對象。通常用于排序。ItemClick :單擊某行或某ListItem 時觸發(fā)。參數(shù)中可以獲得被單擊的 ListItem 對象。方法FindItem :搜索 ListItem 對象。參數(shù):string :搜索字符串。value :在 ListItem 的哪部分中搜索( LvwText 、 LvwSubItem 、 LvwTag ); index :開始搜索的位置。match :匹配方式。HitTest :檢索位于特定坐標處的 ListItem 對象。vb 中的實例Private Sub Form_load()

32、9;確保 ListView 控件的 view 屬性為報表視圖。=lvwReport'添加三列。'向控件添加ListItem 對象。Dim itmX As ListItem'添加 column1 的名稱。ColumnHeader'使用 SubItemIndex 將 SubItem 與正確的 ColumnHeader 關聯(lián)。使用關鍵字("Sex") 指定正確的("Sex").SubItemIndex)=" 男 "'使用 ColumnHeader 關鍵字將 SubItems 字符串與'正確的

33、ColumnHeader 關聯(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論