您的位置:首頁>正文

VBA|使用表單控制項17:使用清單視圖控制項顯示帶圖示的列

清單視圖(ListView)控制項可將專案組成帶有或不帶有列標頭的列, 並顯示伴隨的圖示和文本。 該控制項可使用4種不同的視圖來顯示專案。

大圖示;

小圖示;

列表;

詳細資料(報表);

1 添加ActiveX控制項到工具箱

Alt+F11(打開VBE)→插入→使用者表單, 在工程中增加一個使用者表單, 同時顯示出“工具箱”→右擊→附加控制項:Microsoft ListView Control 6.0。

2 添加使用者表單和控制項

選中ImageList1控制項, 在“屬性”視窗中按一下“自訂”右側的按鈕, 打開“屬性頁”對話方塊, 選中“16*16”選項按鈕。 按一下切換到“圖像”選項卡, 然後按一下“插入圖片”按鈕增加一個小圖示, 設置其“關鍵字”為sIcon, 向ImageList2控制項中添加一個大圖示, 設置其“關鍵字”為lIcon, 如下圖:

3 調用表單代碼

Sub 測試ListView控制項()

frmListView.Show

End Sub

4 表單代碼

Private Sub UserForm_Initialize()

Dim c As Integer, i As Integer

Dim item As ListItem, colh As ColumnHeader

c = Worksheets("花名冊").Range("A1").End(xlDown).Row '數據行數

If c >= 65536 Then c = 1

ListView1.Icons = ImageList2 '設置大圖示控制項

ListView1.SmallIcons = ImageList1 '設置小圖示控制項

With ListView1.ColumnHeaders '添加列標題

Set colh = ListView1.ColumnHeaders.Add(, "姓名", "姓名")

Set colh = ListView1.ColumnHeaders.Add(, "性別", "性別")

Set colh = ListView1.ColumnHeaders.Add(, "地址", "地址")

Set colh = ListView1.ColumnHeaders.Add(, "電話", "電話")

Set colh = ListView1.ColumnHeaders.Add(, "備註", "備註")

End With

i = 2

With Worksheets("花名冊")

Do While i <= c '逐行讀出工作表中的資料

str1 = .Cells(i, 1)

Set item = ListView1.ListItems.Add(, str1, str1, "lIcon", "sIcon")

item.SubItems(1) = .Cells(i, 2) '性別

item.SubItems(2) = .Cells(i, 3) '地址

item.SubItems(3) = .Cells(i, 4) '電話

item.SubItems(4) = .Cells(i, 5) '備註

i = i + 1

Loop

End With

With cmbView '初始化視圖複合框的值

.AddItem "大圖示"

.AddItem "小圖示"

.AddItem "列表"

.AddItem "詳細資料"

.Value = .List(0) '以大圖示方式顯示

End With

End Sub

Private Sub cmbView_Change()

Select Case cmbView.Value

Case "大圖示"

ListView1.View = lvwIcon

Case "小圖示"

ListView1.View = lvwSmallIcon

Case "列表"

ListView1.View = lvwList

Case "詳細資料"

ListView1.View = lvwReport

End Select

End Sub

Private Sub cmdAdd_Click()

Dim c As Integer, i As Integer, str1 As String, strSex As String

Dim item As ListItem

str1 = Trim(txtName.Value)

If Len(str1) = 0 Then '判斷姓名文字框是否為空

MsgBox "請輸入姓名!"

Exit Sub

End If

c = ListView1.ListItems.Count '獲取ListView控制項中的專案數

For i = 1 To c '判斷是否已有同名專案

If ListView1.ListItems(i).Text = str1 Then

MsgBox "列表中已經有該姓名, 請重新輸入!"

txtName.SetFocus

Exit Sub

End If

Next

Set item = ListView1.ListItems.Add(, str1, str1, "lIcon", "sIcon")

strSex = "男"

If optWoman.Value Then strSex = "女"

item.SubItems(1) = strSex '性別

item.SubItems(2) = txtAddress.Value '地址

item.SubItems(3) = txtTelephone.Value '電話

item.SubItems(4) = txtMemo.Value '備註

End Sub

Private Sub cmdExit_Click()

Unload Me

End Sub

在上述表單打開後, 即可進行下面的操作:

-End-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示