列表框控件方案 1:添加和删除项目

本示例说明了如何使用 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