整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Excel窗體控件 ListView

          Excel窗體控件 ListView

          Excel VBA 中,ListView 是一個(gè)用于顯示列表數(shù)據(jù)的控件。它提供了一個(gè)類(lèi)似于 Windows 資源管理器的界面,可以用于顯示和管理列表項(xiàng)。通過(guò) VBA 代碼,可以對(duì) ListView 進(jìn)行各種操作,如添加、刪除、修改列表項(xiàng),以及響應(yīng)列表項(xiàng)的點(diǎn)擊事件等。下面是一個(gè) Excel VBA 中使用 ListView 控件的簡(jiǎn)單教程。


          1. 在 Excel 中添加 ListView 控件

          首先需要在 Excel 中添加 ListView 控件。打開(kāi) Excel,選擇“開(kāi)發(fā)工具”選項(xiàng)卡,然后點(diǎn)擊“插入”按鈕,在彈出的菜單中選擇“ActiveX 控件”下的“ListView Control”。在 Excel 工作表中繪制一個(gè)合適大小的 ListView 控件。

          2. 設(shè)置 ListView 控件的常用屬性

          ListView 控件的常用屬性包括:

          • ListItems:返回一個(gè) ListView.ListItems 集合,用于訪問(wèn)和操作列表項(xiàng)。
          • ColumnHeaders:返回一個(gè) ListView.ColumnHeaders 集合,用于訪問(wèn)和操作列表頭。
          • MultiSelect:設(shè)置是否允許多項(xiàng)選擇。
          • LabelEdit:設(shè)置是否允許編輯列表項(xiàng)的標(biāo)簽。
          • View:設(shè)置列表的顯示模式,如大圖標(biāo)、小圖標(biāo)、列表等。
          • SortOrder:設(shè)置列表的排序順序。

          可以通過(guò)在 VBA 代碼中設(shè)置這些屬性來(lái)控制 ListView 的行為。例如,以下代碼設(shè)置 ListView 的多項(xiàng)選擇屬性為 False,不允許多項(xiàng)選擇:

          ListView1.MultiSelect=False
          

          3. 添加和刪除列表項(xiàng)

          可以使用 ListView.ListItems.Add 方法向 ListView 中添加列表項(xiàng),使用 ListView.ListItems.Remove 方法從 ListView 中刪除列表項(xiàng)。例如,以下代碼添加一個(gè)名為“item1”的列表項(xiàng):

          Set lvi=ListView1.ListItems.Add(1, "item1", "item1")
          


          其中,第一個(gè)參數(shù)“1”表示添加到第一列,第二個(gè)參數(shù)“item1”表示列表項(xiàng)的文本,第三個(gè)參數(shù)“item1”表示列表項(xiàng)的標(biāo)簽。

          4. 修改列表項(xiàng)的文本和標(biāo)簽

          可以使用 ListView.ListItems.Item 方法獲取指定索引的列表項(xiàng),然后修改其文本和標(biāo)簽。例如,以下代碼將第一個(gè)列表項(xiàng)的文本修改為“new item1”:

          ListView1.ListItems(1).Text="new item1"
          

          其中,“1”表示第一個(gè)列表項(xiàng)的索引。

          5. 響應(yīng)列表項(xiàng)的點(diǎn)擊事件

          可以使用 ListView.ListItems.ItemClick 事件響應(yīng)列表項(xiàng)的點(diǎn)擊事件。例如,以下代碼在列表項(xiàng)被點(diǎn)擊時(shí)彈出一個(gè)消息框:

          Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
              MsgBox Item.Text
          End Sub
          

          其中,“ListView1_ItemClick”是自定義的事件處理程序名稱,“ByVal Item As MSComctlLib.ListItem”表示傳遞給事件處理程序的參數(shù)類(lèi)型為 ListView.ListItem。


          6. 從 Excel 中讀取數(shù)據(jù)并顯示在 ListView 中

          可以使用 VBA 代碼從 Excel 中讀取數(shù)據(jù),并將其顯示在 ListView 中。例如,以下代碼從名為“Sheet1”的工作表中讀取第一列和第二列的數(shù)據(jù),并顯示在 ListView 中:

          Sub ReadDataFromExcel()
              Dim arr As Variant
              arr=ThisWorkbook.Sheets("Sheet1").Range("A1:B10")
              ListView1.ListItems.Clear
              For i=1 To UBound(arr, 1)
                  Set lvi=ListView1.ListItems.Add(1, arr(i, 1), arr(i, 2))
              Next
          End Sub
          


          其中,“ReadDataFromExcel”是自定義的過(guò)程名稱。使用ThisWorkbook.Sheets("Sheet1").Range("A1:B10")獲取數(shù)據(jù),并將其存儲(chǔ)在一個(gè)數(shù)組中。然后,使用一個(gè)循環(huán)將數(shù)組中的數(shù)據(jù)添加到 ListView 中。

          需要注意的是,上述代碼中的“Sheet1”和“A1:B10”需要根據(jù)實(shí)際情況進(jìn)行修改。此外,還可以根據(jù)需要對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步處理,如添加到數(shù)據(jù)庫(kù)中。

          istView是WinForm中的一個(gè)Windows 列表視圖控件,可以通過(guò)5種不同的視圖形式來(lái)動(dòng)態(tài)顯示數(shù)據(jù)的集合。ListView提供了很多基本屬性和事件,通過(guò)定義屬性和事件我們可以設(shè)計(jì)出符合我們需求的樣式及功能。


          ListView的View視圖屬性


          要想用好ListView控件我們需要先來(lái)了解下ListView的視圖模式,ListView提供了五種視圖顯示模式,分別是:

          LargeIcon:每項(xiàng)都顯示一個(gè)最大化圖標(biāo)和一個(gè)標(biāo)簽(標(biāo)簽在圖標(biāo)的下方);

          Details:需要有列表頭(否則不顯示內(nèi)容),可以顯示任意的列,但只有第一欄可以包含一個(gè)小圖標(biāo)和標(biāo)簽(標(biāo)簽在圖標(biāo)的右方),其它的列項(xiàng)可以顯示文字信息或控件(顯示控件可以通過(guò)重寫(xiě)ListView方法來(lái)實(shí)現(xiàn));

          SmallIcon:每個(gè)項(xiàng)都顯示一個(gè)小圖標(biāo)和一個(gè)標(biāo)簽(標(biāo)簽在圖標(biāo)的右方);

          List:跟SmallIcon差不多,每個(gè)項(xiàng)都顯示一個(gè)小圖標(biāo)和一個(gè)標(biāo)簽(標(biāo)簽在圖標(biāo)的右方);各項(xiàng)排列在列中,沒(méi)有列標(biāo)頭

          Tile:每個(gè)項(xiàng)都顯示一個(gè)完整大小的圖標(biāo),右邊顯示一個(gè)標(biāo)簽和子項(xiàng)信息(僅Windows XP 和 Windows Server 2003 系統(tǒng)支持)。

          我的Dome是要獲取文件夾下載所有文件信息并將文件信息顯示在ListView列表中,它每項(xiàng)需要顯示多列數(shù)據(jù)顯然只有Details視圖適合我們。ListView默認(rèn)視圖為L(zhǎng)argeIcon,我們只要選擇控件在屬性中找到view屬性,選擇Details即可。


          Details視圖結(jié)構(gòu)

          在Details視圖模式中,ListView為我們整個(gè)視圖控件,跟Excel表格相似有列和行的概念。Columns定義ListView標(biāo)題(不算入列表數(shù)據(jù)中,就是個(gè)列表頭);items定義ListView顯示的數(shù)據(jù)項(xiàng),是Item的集合;Item定義到items中的每一行(通過(guò)實(shí)例化ListViewItem獲取);SubItem則定位到了Item中的具體單元格。


          創(chuàng)建列表頭


          Details有個(gè)特點(diǎn)就是必須創(chuàng)建列表頭不然就算你添加了數(shù)據(jù)也無(wú)法顯示的,創(chuàng)建列表頭我們可以通過(guò)ColumnHeader來(lái)實(shí)現(xiàn),每顯示一列就需要有一個(gè)列表頭。如果通過(guò)ColumnHeader實(shí)例化添加比較麻煩的話可以使用下面這種方式添加比較簡(jiǎn)潔,如果列表較多的話可以用循環(huán)遍歷實(shí)現(xiàn)。


          列表項(xiàng)添加數(shù)據(jù)


          向列表項(xiàng)中添加數(shù)據(jù)我們可以通過(guò)ListView中的item屬性來(lái)添加,多行數(shù)據(jù)可以通過(guò)for或者foreach來(lái)遍歷數(shù)據(jù)集。這里通過(guò)folderBrowserDialog控件來(lái)選擇文件夾并拿到文件夾中的所有對(duì)象,通過(guò)foreach遍歷對(duì)象判斷對(duì)象是否文件夾,如果是文件夾則獲取文件夾名稱如果是文件則獲取文件名,最后通過(guò)Add方法將該信息添加到ListView中的item屬性中。


          向列表項(xiàng)中添加多列數(shù)據(jù)


          上面我們將文件名寫(xiě)入了列表項(xiàng)中,但你會(huì)發(fā)現(xiàn)每行只有一條數(shù)據(jù),在沒(méi)有定義item時(shí)默認(rèn)只有一條數(shù)據(jù)。如果我們一行需要寫(xiě)入多條數(shù)據(jù)該怎么操作呢,這時(shí)候我們可以通過(guò)ListViewItem來(lái)實(shí)例化item對(duì)象,再使用SubItems.Add()方法將當(dāng)行內(nèi)單元格的數(shù)據(jù)添加到item集合中,最后把item集合拋給items即可。當(dāng)然你也可以通過(guò)指定items下標(biāo)來(lái)對(duì)指定行追加每列數(shù)據(jù),SubItems.Add()方法會(huì)依次向后添加一列數(shù)據(jù)(注意:該列必須定義列表頭方能顯示數(shù)據(jù))。


          列表綁定圖標(biāo)


          首先使用imagelist控件先生成一個(gè)圖片列表,右鍵imagelist控件->選擇圖像->添加,將你準(zhǔn)備的圖標(biāo)(支持ico圖標(biāo))添加進(jìn)來(lái)。然后通過(guò)與imageList列表集合綁定來(lái)獲取每項(xiàng)圖標(biāo) ,選擇的不同視圖模式對(duì)應(yīng)不同的綁定屬性,Details、SmallIcon、List視圖使用listView1.SmallImageList屬性,LargeIcon、Tile視圖使用listView1.LargeImageList屬性,否則圖標(biāo)將無(wú)法正常顯示。

          綁定只需通過(guò)ListViewItem的ImageIndex屬性指向imageList的下標(biāo)即可,如果用foreach遍歷我們需要自行添加一個(gè)變量來(lái)指定下標(biāo)。

          THE END


          主站蜘蛛池模板: 国产免费一区二区视频| 国产一区中文字幕在线观看| 亚洲一区二区三区无码影院| 精品性影院一区二区三区内射| 国产精品久久久久一区二区| 久久se精品动漫一区二区三区| 亚洲第一区在线观看| 精品日韩一区二区| 国语对白一区二区三区| 日本一道高清一区二区三区| 自拍日韩亚洲一区在线| 91久久精品国产免费一区| 久久一区二区三区免费播放| 一区二区三区四区精品视频 | 亚洲av乱码中文一区二区三区| 国产亚洲日韩一区二区三区 | 国内精品一区二区三区最新| 人妻少妇精品视频三区二区一区| 亚洲乱码一区二区三区国产精品| 精品爆乳一区二区三区无码av| 亚洲狠狠狠一区二区三区| 麻豆一区二区免费播放网站| 亚洲一区AV无码少妇电影| 精品无码国产一区二区三区麻豆| 日韩一区二区三区不卡视频| 国产在线观看91精品一区| 国产精品 视频一区 二区三区| 久久久久女教师免费一区| 久久免费区一区二区三波多野| 在线播放国产一区二区三区 | 国产在线观看91精品一区| 一区二区三区视频免费| 国偷自产一区二区免费视频| 亚洲天堂一区二区三区四区| 日本精品视频一区二区| 香蕉免费看一区二区三区| 日韩精品一区二区亚洲AV观看| 在线观看日本亚洲一区| 一区二区国产在线播放| 无码少妇一区二区三区| 精品一区狼人国产在线|