列表框(ListBox)代表一個Windows控制元件,向使用者顯示專案列表。使用者可以從列表中選擇一個專案。 它允許程式員在設計時使用屬性視窗或執行時新增專案。
可通過從工具箱中拖動一個ListBox控制元件並將其放在表單上來建立一個列表框。如下所示 -
可以從屬性視窗或執行時填充列表框專案。要將專案新增到ListBox,請選擇ListBox控制元件並轉到屬性視窗,以獲取此控制元件的屬性。 單擊Items 屬性旁邊的省略號(…)按鈕。 這將開啟「字串集合編輯器」對話方塊,在其中輸入一行的值。
以下是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 |
獲取或設定在列表框中選擇專案的方法。該屬性具有值:oneOne ,MultiSimple ,MultiExtended |
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控制元件的屬性,方法和事件的詳細列表。
在下面的例子中,在設計時新增一個列表框,並在執行時新增專案。
參考以下步驟:
參考以下實現程式碼 -
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 tw511.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
執行上面範例程式碼,得到以下結果 -
當選擇其中的一個專案:俄羅斯,然後點選確定,得到以下結果 -
在這個例子中,我們將填充一個帶有專案的列表框,檢索列表框中專案的總數,對列表框進行排序,刪除一些專案,以及清除整個列表框的選項。
設計表單如下:
參考以下範例程式碼 -
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 - tw511.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 中的原始碼。