多项控件:使用 ListBox 和 ComboBox 控件

更新:2007 年 11 月

在本课中,您将学习如何在列表中添加项以及从列表中删除项。您还将学习如何在用户选择列表中的项时执行操作。

如果希望为用户提供一个选项列表,可以在 ListBox 控件或 ComboBox 控件中显示项的列表。

ListBox 控件可让您同时指定多个项,并使用户能够浏览较长的列表。当用户选择一个项时,该项会在列表中突出显示,如下图所示。

ListBox 控件

ListBox 控件

ComboBox 控件是文本框和列表框的组合。默认情况下,组合框以文本框形式出现,但当用户单击下拉箭头时,将显示一个列表。当用户选择一个项时,该项会突出显示并在默认视图中可见,如下图所示。

ComboBox 控件

ComboBox 控件

向列表框中添加项的过程与向组合框中添加项的过程类似。可以使用 ListBox 控件的 Add 方法和 ComboBox 控件的 Add 方法添加项。

试一试!

向列表框中添加项

  1. 在“文件”菜单上单击“新建项目”。

    将出现“新建项目”对话框。

  2. 单击“Windows 窗体应用程序”,然后单击“确定”。

    一个新的 Windows 窗体项目随即打开。

  3. 将“ListBox”控件添加到窗体中,保留默认名称“ListBox1”。

  4. 双击此窗体以在代码编辑器中添加默认事件处理程序。

  5. 在 Form_Load 事件处理程序中,添加下列代码以向列表添加项。

    With Me.ListBox1.Items
        .Add("red")
        .Add("blue")
        .Add("green")
        .Add("yellow")
        .Add("orange")
        .Add("pink")
        .Add("brown")
        .Add("black")
    End With
    
  6. 按 F5 运行程序。

    此窗体将打开并显示包含颜色列表的 ListBox

  7. 关闭程序。

当选定项发生更改时执行操作

当用户在列表框中选择相应的项时,可以执行某个操作(如显示颜色)。为此,可在 ListBoxSelectedIndexChanged 事件处理程序中编写代码。还有与 ComboBox 控件对应的事件。

通过使用 SelectedItem 属性,可以确定已选定列表中的哪一项。通过使用 Color 对象的 FromName 方法,可以将列表中选定的颜色分配给控件的 BackColor 属性。

显示列表框中选定的颜色

  1. 将“TextBox”控件添加到窗体中,保留默认名称“TextBox1”。

  2. 双击“ListBox”控件以便在代码编辑器中添加默认事件处理程序。

  3. 在 ListBox_SelectedIndexChanged 事件处理程序中,添加下列代码以显示文本框中的颜色。在将 ColorName 变量分配给文本框的 BackColor 属性之前,请确保此变量包含一个值。

    Dim ColorName As String = CStr(ListBox1.SelectedItem)
    
    If ColorName IsNot Nothing Then
        Me.TextBox1.BackColor = _
            System.Drawing.Color.FromName(ColorName)
    End If
    
  4. 按 F5 运行程序。

  5. 当窗体打开时,单击列表框中的某个项以查看文本框中显示的选定颜色。

  6. 关闭程序。

检查列表中是否存在项

当向列表中添加项时,通常不需要复制现有项。例如,您可能希望用户能够通过双击列表框中的某个项以将该项复制到组合框中。如果组合框中已包含此项,则不应再次添加。可以使用 Contains 方法确定组合框中是否包含此项。还有一个与列表框对应的 Contains 方法。

向组合框中添加项

  1. 将“ComboBox”控件添加到窗体中,保留默认名称“ComboBox1”。

  2. 右键单击窗体并单击“查看代码”,打开代码编辑器。

  3. 在代码编辑器中的“类名”下拉列表中,单击“ListBox1”。

  4. 在“方法名称”下拉列表中,单击“DoubleClick”以创建事件处理程序。

  5. 向 ListBox1_DoubleClick 事件处理程序中添加下列代码以向组合框添加项。由于可以存在空的列表框,因此在添加选定项之前,应确保此选定项不为空。

    If ListBox1.SelectedItem IsNot Nothing Then
        If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then
            Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem)
        End If
    
        Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem
    
    End If
    
  6. 按 F5 运行程序。

    双击列表框中的项并确认是否仅将这些项添加到组合框一次。

  7. 关闭程序。

从列表框中删除项

通过使用 Remove 方法,可以从列表框中删除项。例如,您可能决定移动项,而不是将项从列表框中复制到组合框。可以通过先将某个项添加到组合框中,然后从列表框中删除此项,从而实现移动。

删除列表框中的项

  1. 将下面的代码添加到 ListBox_DoubleClick 事件处理程序中的 End If 语句上方。

    Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
    
  2. 按 F5 运行程序。

  3. 双击列表框中的项并确认是否将这些项从列表框中删除并添加到组合框。

后续步骤

在本课中,您学习了如何向列表中添加项以及从列表中删除项。您还学习了如何在用户选择项时执行操作。在下一课中,您将学习如何使用显示日期和时间的控件。

下一课:显示日期:使用 MonthCalendar 和 DateTimePicker 控件

请参见

参考

ListBox 控件概述(Windows 窗体)

ComboBox 控件概述(Windows 窗体)

其他资源

创建程序的可视外观:Windows 窗体介绍