VB 控件listbox详细用法 今天刚看到的一个很不错的 代码 列表框的特点是:列表框中的项目是通过程序插入到其中的,用户无法向清单中输入数据,当选择其中的项目,并在用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。下面这个例子充分说明了列表框的这个特点,并介绍了列表框(ListBox)的常用属性。 Option Explicit ' List1、List2 列表框 ' LefttoRightCmd 移动所选项目到另一个列表框(左到右) ' RighttoLeftCmd 移动所选项目到另一个列表框(右到左) ' List1MoveCmd 删除列表框List1中所选项目 ' List2MoveCmd 删除列表框List2中所选项目 ' List1AddCmd 给列表框List1增加新项目 ' List2AddCmd 给列表框List2增加新项目 ' List1ClearCmd 清空列表框List1 ' List2ClearCmd 清空列表框List2 '-------------------------------------- '-------------------------------------- '————名称————属性设置——— ' ' List1列表框 Sorted属性设为“False” ' List2列表框 Sorted属性设为“True” ' MultiSelect属性设置为2 ' 即List2控件中的项目总是排序的 '-------------------------------------- Private Sub Form_Load() '装载窗体时,给列表中的元素赋值 List1.AddItem "China" List1.AddItem "America" List1.AddItem "Japan" List2.AddItem "Soccer" List2.AddItem "Tennis" List2.AddItem "Basketball" End Sub Private Sub LefttoRightCmd_Click() '将左边列表中所选元素移动到右边列表中 If List1.ListIndex >= 0 Then '在右边列表中增加新元素 List2.AddItem List1.Text '删除左边列表中的所选元素 List1.RemoveItem List1.ListIndex End If End Sub Private Sub List1AddCmd_Click() Dim ListItem As String ' ListItem = InputBox("在列表中输入新项目") '向列表中加入新项目 If Trim(ListItem) <> "" Then 'Trim()作用是清除ListItem字符串内的空格 List1.AddItem ListItem End If End Sub Private Sub List1ClearCmd_Click() '清空列表 List1.Clear End Sub Private Sub List1MoveCmd_Click() Dim i As Integer '判断列表框是否只有一个项目被选中 If List1.SelCount = 1 Then List1.RemoveItem List1.ListIndex ElseIf List1.ListCount > 1 Then '删除列表框中的所选中的多个项目 For i = List1.ListCount - 1 To 0 Step -1 'ListCount返回列表框中的项目总数 'ListCount-1是列表框中最后一个项目的索引号 '判断该项目是否被选中,Selected()返回布尔值 If List1.Selected(i) Then '删除索引号为i的项目 List1.RemoveItem i End If Next End If End Sub Private Sub List2AddCmd_Click() '定义变量,以接收输入的字符串 Dim ListItem As String ListItem = InputBox("在列表中输入新项目") If Trim(ListItem) <> "" Then '将字符串增加到列表中 List2.AddItem ListItem End If End Sub Private Sub List2ClearCmd_Click() '清空列表 List2.Clear End Sub Private Sub List2MoveCmd_Click() Dim i As Integer '判断所选 元素是否只有一个 If List2.SelCount = 1 Then List2.RemoveItem List2.ListIndex '如果所选 元素大于1,则按下列操作进行 ElseIf List2.ListCount > 1 Then For i = List2.ListCount - 1 To 0 Step -1 If List2.Selected(i) Then List2.RemoveItem i End If Next i End If End Sub Private Sub RighttoLeftCmd_Click() Dim i As Integer '判断选中的元素有几个 If List2.SelCount = 1 Then List1.AddItem List2.Text List2.RemoveItem List2.ListIndex '当选中的元素大于一个时 ElseIf List2.SelCount > 1 Then For i = List2.ListCount - 1 To 0 Step -1 '如果该元素被选中,则将其从右边移至左边 If List2.Selected(i) Then List1.AddItem List2.List(i) List2.RemoveItem i End If Next i End If End Sub (源程序下载) 这个例子包含一个窗体,窗体中有两个列表框(List1、List2)和八个按钮,界面如下: 图片 窗体(FormListBox) 我们首先新建一个标准的EXE工程,添加一个窗体,并把列表框和按钮控件添加到窗体上。各按钮控件的名称如下表: 按钮名称 名称属性 按钮名称 名称属性 删除所选项目(左) List1movecmd 删除所选项目(右) List2movecmd 增加新项目(左) List1addcmd 增加新项目(右) List2addcmd 清除弄表(左) List1clearcmd 清除列表(右) List2clearcmd 右箭头 lefttorightcmd 左箭头 Righttoleftcmd ' List1列表框 Sorted属性设为“False” ' List2列表框 Sorted属性设为“True” ' MultiSelect属性设置为2 ' 即List2控件中的项目总是排序的 在属性窗口中,将List1列表框 Sorted属性设为“False”;List2列表框 Sorted属性设为“True”,MultiSelect属性设置为2,即List2控件中的项目总是排序的。 下一步我们为各控件添加相应的程序。 其中: List1.AddItem "China" 是将“China”添加到列表框中。 List1.ListIndex 返回的是列表框List1中当前选择项目的索引号码。 List1.ListCount 返回的是列表框List1中项目总数。 List1.ListCount - 1 返回列表框List1中最后一个项目的索引号。 List1.Selected() 返回的是一个项目的选择状态,返回的是布尔值。