一、程序設(shè)計(jì)界面:
用VB做一個(gè)列表框向另外的列表框中添加選項(xiàng)并不是一件復(fù)雜的事情,在此向各位初學(xué)者(包括自己在內(nèi)^_^)介紹一下如何用列表框的屬性和事件來(lái)實(shí)現(xiàn)這個(gè)功能。
新建一個(gè)標(biāo)準(zhǔn)EXE工程,在屏幕上會(huì)出現(xiàn)一個(gè)空白的窗體,向窗體上添加兩個(gè)ListBox控件、二個(gè)Frame控件、四個(gè)CommandButton控件和二個(gè)OptionButton控件,添加控件后的窗體如圖1所示。
圖1
二、控件屬性及設(shè)置列表:
圖2
提示:MultiSelect設(shè)置為“2-Extended”就實(shí)現(xiàn)用Ctrl鍵和Shift鍵來(lái)選擇列表中的內(nèi)容。
三、程序的代碼分別如下:
'1.開始執(zhí)行程序時(shí),調(diào)用程序聲明段中的代碼:
Dim flag(100) As Boolean, ff As Boolean
Dim i, g As Integer
'2.雙擊控件Command1,在代碼窗口中的光標(biāo)就會(huì)自動(dòng)的跳轉(zhuǎn)到控件Command1的
Command1_Click()事件處,在該事件中添加下列代碼:
Private Sub Command1_Click() '添加…>>
If ff = True Then
For i = 0 To List1.ListCount - 1
If flag(i) = 0 And List1.Selected(i) Then '判斷選項(xiàng)的選中狀態(tài)
List2.AddItem List1.List(i) '向控件list2添加選項(xiàng)
flag(i) = 1
Call mun '調(diào)用統(tǒng)計(jì)列表個(gè)數(shù)
End If
Next i
End If
If ff = False Then
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) Then '判斷選項(xiàng)的選中狀態(tài)
List2.AddItem List1.List(i) '向控件list2添加內(nèi)容
List1.RemoveItem (i)
Call mun '調(diào)用統(tǒng)計(jì)列表個(gè)數(shù)
End If
Next i
End If
End Sub
'3.雙擊Command2控件,并輸入如下代碼:
Private Sub Command2_Click() '全部添加
If ff = True Then
For i = 0 To List1.ListCount - 1
If flag(i) = 0 Then
List2.AddItem List1.List(i) '將已選項(xiàng)追加到list2中
flag(i) = 1
Call mun
End If
Next i
End If
If ff = False Then
For i = List1.ListCount - 1 To 0 Step -1
List2.AddItem List1.List(i) '將已選項(xiàng)追加到list2中
List1.RemoveItem (i) '刪除已選項(xiàng)
Call mun
Next i
End If
End Sub
'4.雙擊Command3控件,并輸入如下代碼:
Private Sub Command3_Click() '全部刪除
If ff = True Then
For i = 0 To List2.ListCount - 1
flag(i) = 0
Call mun
Next i
List2.Clear
End If
If ff = False Then
For i = List2.ListCount - 1 To 0 Step -1
List1.AddItem List2.List(i)
List2.RemoveItem (i)
Call mun
Next i
End If
End Sub
'5.雙擊Command4控件,并輸入如下代碼:
Private Sub Command4_Click() '刪除<<…
If ff = True Then
For i = List2.ListCount - 1 To 0 Step -1
If List2.Selected(i) Then '判斷選項(xiàng)的選中狀態(tài)
For q = 0 To List1.ListCount - 1
If List2.List(i) = List1.List(q) Then
flag(q) = 0 '如與原數(shù)據(jù)相同則置為可選
End If
Next q
List2.RemoveItem (i) '刪除所選項(xiàng)
Call mun
End If
Next i
End If
If ff = False Then
For i = List2.ListCount - 1 To 0 Step -1
If List2.Selected(i) Then
List1.AddItem List2.List(i)
List2.RemoveItem (i)
Call mun
End If
Next i
End If
End Sub
'6.雙擊Form1窗體,并輸入窗體的初始化代碼:
Private Sub Form_Load()
ff = True
Call Init
Call mun '調(diào)用統(tǒng)計(jì)列表個(gè)數(shù)的函數(shù)
Frame1.Caption="功能轉(zhuǎn)換"
Frame2.Caption = ""
Option1(0).ToolTipText = "實(shí)現(xiàn)只向List2控件添加內(nèi)容并不刪除原內(nèi)容"
Option1(1).ToolTipText = "實(shí)現(xiàn)向List2控件添加內(nèi)容并將其原內(nèi)容刪除"
Me.Icon = LoadPicture("") '標(biāo)題欄沒(méi)圖標(biāo)顯示
Me.Caption = "列表框應(yīng)用技巧 [威龍工作室]"
End Sub
'7.選擇Form1的“Unload”并輸入下列代碼:
Private Sub Form_Unload(Cancel As Integer)
Unload Me '結(jié)束程序
End Sub
'8.選擇List1控件的“DblClick”并輸入下列代碼:
Private Sub List1_DblClick()
Command1_Click '實(shí)現(xiàn)雙擊添加
End Sub
'9.選擇List2控件的“DblClick”并輸入下列代碼:
Private Sub List2_DblClick()
Command4_Click '實(shí)現(xiàn)雙擊刪除
End Sub
' 提示:各位在執(zhí)行某個(gè)程序時(shí),想執(zhí)行某個(gè)程序的代碼,可以如上述第8和第9段代碼一樣就可以執(zhí)行添加按鈕和刪除按鈕相同的工作了。
'10.雙擊Option1控件,并輸入下列代碼來(lái)實(shí)現(xiàn)功能轉(zhuǎn)換:
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
ff = True
Call Init
Call mun
Case 1
ff = False
Call Init
Call mun
End Select
End Sub
'11.分別統(tǒng)計(jì)出兩個(gè)列表框中數(shù)據(jù)的個(gè)數(shù):
Private Sub mun()
Label1.Caption = "列表框元素個(gè)數(shù):" & List1.ListCount
Label2.Caption = "列表框元素個(gè)數(shù):" & List2.ListCount
End Sub
'12.初始化列表框的內(nèi)容:
Private Sub Init()
For i = 0 To List1.ListCount - 1
flag(i) = 0
Next i
List1.Clear '清除List1控件
'初始化控件List1信息
List1.AddItem "北京"
List1.AddItem "廣州"
List1.AddItem "上海"
List1.AddItem "臺(tái)灣"
List1.AddItem "香港"
List1.AddItem "大連"
List1.AddItem "澳門"
List1.AddItem "深圳"
List1.AddItem "成都"
List1.AddItem "西藏自治區(qū)"
List1.AddItem "云南"
List1.AddItem "桂林"
List1.AddItem "內(nèi)蒙古自治區(qū)"
List1.AddItem "重慶"
List1.AddItem "哈爾濱"
List1.AddItem "天津"
List1.AddItem "海南島"
List1.AddItem "珠海"
List1.AddItem "中山"
List1.AddItem "釣魚臺(tái)"
List1.AddItem "天津"
List1.AddItem "寧夏回族自治區(qū)"
List2.Clear '清空控件List2內(nèi)容
End Sub
寫完上面全部的源代碼后,按F5鍵運(yùn)行程序(如圖3和圖4所示)你就可以看到功能一和功能二到底有什么區(qū)別了。
圖3
圖4