VB.Net列表框(ListBox)

列表框(ListBox)代表一个Windows控件,向用户显示项目列表。用户可以从列表中选择一个项目。 它允许程序员在设计时使用属性窗口或运行时添加项目。

可通过从工具箱中拖动一个ListBox控件并将其放在窗体上来创建一个列表框。如下所示 -

可以从属性窗口或运行时填充列表框项目。要将项目添加到ListBox,请选择ListBox控件并转到属性窗口,以获取此控件的属性。 单击Items 属性旁边的省略号(…)按钮。 这将打开“字符串集合编辑器”对话框,在其中输入一行的值。

ListBox控件的属性

以下是ListBox 控件的一些常用属性:

编号 属性 示例
1 AllowSelection 获取一个值,该值指示列表框当前是否允许选择列表项。
2 BorderStyle 获取或设置在列表框周围绘制的边框的类型。
3 ColumnWidth 获取设置多列列表框中列的宽度。
4 HorizontalExtent 获取或设置列表框的水平滚动区域。
5 HorizontalScrollBar 获取或设置指示是否在列表框中显示水平滚动条的值。
6 ItemHeight 获取或设置列表框中项目的高度。
7 Items 获取列表框的项目。
8 MultiColumn 获取或设置一个值,该值指示列表框是否支持多列。
9 ScrollAlwaysVisible 获取或设置一个值,指示是否始终显示垂直滚动条。
10 SelectedIndex 获取或设置列表框中当前选定项目的从零开始的索引。
11 SelectedIndices 获取一个集合,其中包含列表框中所有当前选定项目的从零开始的索引。
12 SelectedItem 获取或设置列表框中当前选定的项目。
13 SelectedItems 获取包含列表框中当前选定项目的集合。
14 SelectedValue 获取或设置由ValueMember属性指定的成员属性的值。
15 SelectionMode 获取或设置在列表框中选择项目的方法。该属性具有值:oneOneMultiSimpleMultiExtended
16 Sorted 获取或设置一个值,该值指示列表框中的项目是否按字母顺序排序。
17 Text 获取或搜索列表框中当前选定项目的文本。
18 TopIndex 获取或设置列表框第一个可见项的索引。
编号 方法 示例
1 BeginUpdate 防止控件绘制,直到调用EndUpdate方法,而项目一次添加到列表框。
2 ClearSelected 取消选择列表框中的所有项目。
3 EndUpdate 在由BeginUpdate方法关闭后,继续列表框的绘图。
4 FindString 查找ListBox中以指定为参数的字符串开头的第一个项目。
5 FindStringExact 查找ListBox中与指定字符串完全匹配的第一个项目。
6 GetSelected 返回一个值,指示是否选择指定的项目。
7 SetSelected 选择或清除ListBox 中指定项目的选择。
8 OnSelectedIndexChanged 引发SelectedIndexChanged 事件。
9 OnSelectedValueChanged 引发SelectedValueChanged 事件。
编号 事件 示例
1 Click 在选择列表框时发生。
2 SelectedIndexChanged 在列表框的SelectedIndex属性发生更改时发生。

请参阅Microsoft文档以获取ListBox控件的属性,方法和事件的详细列表。

示例1

在下面的例子中,在设计时添加一个列表框,并在运行时添加项目。

参考以下步骤:

  • 在窗体上拖放两个标签,一个按钮和一个ListBox控件。
  • 设置第一个标签的文本属性,以提供标题“选择您最喜欢学习的语言”。
  • 设置第二个标签的Text属性以提供标题“Destination”。当用户选择列表中的项目时,此标签上的文本将在运行时更改。
  • 单击列表框和按钮控件以在代码编辑器中添加以下代码。

参考以下实现代码 -

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Set the caption bar text of the form.  
        Me.Text = "ListBox - by xuhuhu.com"
        ListBox1.Items.Add("加拿大")
        ListBox1.Items.Add("俄罗斯")
        ListBox1.Items.Add("印度")
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox("您的选择是: " + ListBox1.SelectedItem.ToString())
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        Label2.Text = ListBox1.SelectedItem.ToString()
    End Sub


End Class

执行上面示例代码,得到以下结果 -

当选择其中的一个项目:俄罗斯,然后点击确定,得到以下结果 -

示例2

在这个例子中,我们将填充一个带有项目的列表框,检索列表框中项目的总数,对列表框进行排序,删除一些项目,以及清除整个列表框的选项。

设计窗体如下:

参考以下示例代码 -

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Set the caption bar text of the form.   '
        Me.Text = "ListBox Demo2 - xuhuhu.com"
        ' creating multi-column and multiselect list box '
        ListBox1.MultiColumn = True
        ListBox1.SelectionMode = SelectionMode.MultiExtended
    End Sub
    'populates the list '
    Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btnFill.Click
        ListBox1.Items.Add("泡到一妞")
        ListBox1.Items.Add("学习精通各种算法")
        ListBox1.Items.Add("努力学习并得到奖学金")
        ListBox1.Items.Add("周游全国")
    End Sub
    'sorting the list '
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnSorted.Click
        ListBox1.Sorted = True
    End Sub
    'clears the list '
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnClear.Click
        ListBox1.Items.Clear()
    End Sub
    'removing the selected item '
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
        ListBox1.Items.Remove(ListBox1.SelectedItem.ToString())
    End Sub
    'counting the numer of items '
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnCount.Click
        countLabel.Text = ListBox1.Items.Count
    End Sub
    'displaying the selected item on the third label '
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) _
            Handles ListBox1.SelectedIndexChanged
        currSelectedLabel.Text = ListBox1.SelectedItem.ToString()
    End Sub
End Class

执行上面示例代码,得到以下结果 -

注意:项目代码为basecontrol/ListBox2 中的源代码。


上一篇: VB.Net基本控件 下一篇: VB.Net对话框