本示例说明了如何使用 AddItem、RemoveItem、Clear 方法和 ListIndex、ListCount 属性在运行时添加或删除列表项目。在图 7.36 所示示例中,用户可把客户名输入文本框,然后单击“添加”按钮将输入项添加到列表中。为删除当前列表项目,可选定项目并单击“删除”按钮,要清除列表中所有的项目,可单击“清除”按钮。
图 7.36 使用了 AddItem、RemoveItem 和 Clear 方法的列表框
在一个看似文本框(BorderStyle 设置为 1-Fixed Single)的标签中显示列表框中的客户数。每添加一个客户或删除一个客户时,标签都会更新。列表框的 Sorted 属性已设置为 True,所以按字母顺序添加项目。
创建一个窗体,其上有一个文本框、一个列表框、三个标签和四个命令按钮。下表列出了应用程序中对象的属性设置值。
对象 | 属性 | 设置值 |
顶端的文本框 | Name Text |
txtName (Empty) |
顶端的标签 | Name Caption |
lblName &Name to add |
列表框 | Name Sorted |
lstClient True |
底部的标签 | Name Caption |
lblClients # Clients |
客户数标签 (看似一个文本框) |
Name Caption BorderStyle |
lblDisplay (Empty) 1-Fixed Single |
第一个命令按钮 | Name Caption |
cmdAdd &Add |
第二个命令按钮 | Name Caption |
cmdRemove &Remove |
第三个命令按钮 | Name Caption |
cmdClear &Clear |
第四个命令按钮 | Name Caption |
cmdClose &Close |
将下列代码添加到 cmdAdd_Click 事件过程中:
Private Sub cmdAdd_Click () lstClient.AddItem txtName.Text '
添加到列表中。txtName.Text = "" '
清除文本框。txtName.SetFocus
'
显示数目。lblDisplay.Caption = lstClient.ListCount
End Sub
将下列代码添加到 cmdRemove_Click 事件过程中:
Private Sub cmdRemove_Click () Dim Ind As Integer Ind = lstClient.ListIndex '
获取索引。'
确保选定列表项目。If Ind >= 0 Then
'
将其从列表中删除。lstClient.RemoveItem Ind
'
显示数目。lblDisplay.Caption = lstClient.ListCount
Else
Beep
End If
'
若列表中没有项目,则禁用此按钮。cmdRemove.Enabled = (lstClient.ListIndex <> -1)
End Sub
将下列代码添加到 cmdClear_Click 事件过程中:
Private Sub cmdClear_Click () '
清空列表框。lstClient.Clear
'
禁用“删除”按钮。cmdRemove.Enabled = False
'
显示数目。lblDisplay.Caption = lstClient.ListCount
End Sub
将下列代码添加到 cmdClose_Click 事件过程中:
Private Sub cmdClose_Click ()
Unload Me
End Sub
将下列代码添加到 lstClient_Click 事件过程中:
Private Sub lstClient_Click ()
cmdRemove.Enabled = lstClient.ListIndex <> -1
End Sub
将下列代码添加到 txtName_Change 事件过程中:
Private Sub txtName_Change () '
当txtName
文本框中至少有一个字符时,'
允许“添加”按钮。cmdAdd.Enabled = (Len(txtName.Text) > 0)
End Sub