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對話框