VB.Net - 組合框控制元件



組合框控制元件用於顯示各種專案的下拉列表。它結合了使用者輸入專案的文字框和使用者從中選擇專案的下拉列表。

讓我們透過從工具箱中拖動一個 ComboBox 控制元件並將其放到窗體上,來建立一個組合框。

VB.Net ComboBox Control

您可以從屬性視窗或在執行時填充列表框專案。要向組合框新增專案,請選擇組合框控制元件,然後轉到該控制元件的屬性視窗。單擊“專案”屬性旁邊的省略號 (...) 按鈕。這將開啟“字串集合編輯器”對話方塊,您可以在其中逐行輸入值。

組合框控制元件的屬性

以下是組合框控制元件的一些常用屬性:

序號 屬性和描述
1

AllowSelection

獲取一個值,指示列表是否啟用列表項的選擇。

2

AutoCompleteCustomSource

獲取或設定一個自定義 System.Collections .Specialized.StringCollection,當 AutoCompleteSource 屬性設定為 CustomSource 時使用。

3

AutoCompleteMode

獲取或設定一個選項,該選項控制組合框自動完成功能的工作方式。

4

AutoCompleteSource

獲取或設定一個值,指定用於自動完成的完整字串的來源。

5

DataBindings

獲取控制元件的資料繫結。

6

DataManager

獲取與此控制元件關聯的 CurrencyManager。

7

DataSource

獲取或設定此組合框的資料來源。

8

DropDownHeight

獲取或設定組合框下拉部分的高度(以畫素為單位)。

9

DropDownStyle

獲取或設定一個值,指定組合框的樣式。

10

DropDownWidth

獲取或設定組合框下拉部分的寬度。

11

DroppedDown

獲取或設定一個值,指示組合框是否顯示其下拉部分。

12

FlatStyle

獲取或設定組合框的外觀。

13

ItemHeight

獲取或設定組合框中專案的的高度。

14

Items

獲取一個物件,表示此組合框中包含的專案的集合。

15

MaxDropDownItems

獲取或設定組合框下拉部分中顯示的最大專案數。

16

MaxLength

獲取或設定使用者可以在組合框的可編輯區域中輸入的最大字元數。

17

SelectedIndex

獲取或設定指定當前所選專案的索引。

18

SelectedItem

獲取或設定組合框中當前所選的專案。

19

SelectedText

獲取或設定組合框可編輯部分中所選的文字。

20

SelectedValue

獲取或設定 ValueMember 屬性指定的成員屬性的值。

21

SelectionLength

獲取或設定組合框可編輯部分中所選字元的數量。

22

SelectionStart

獲取或設定組合框中所選文字的起始索引。

23

Sorted

獲取或設定一個值,指示組合框中的專案是否已排序。

24

Text

獲取或設定與此控制元件關聯的文字。

組合框控制元件的方法

以下是組合框控制元件的一些常用方法:

序號 方法名稱和描述
1

BeginUpdate

防止控制元件繪製,直到呼叫 EndUpdate 方法,同時一次一個地向組合框新增專案。

2

EndUpdate

在 BeginUpdate 方法將其關閉後,恢復組合框的繪製。

3

FindString

查詢組合框中以指定引數作為字串開頭的第一個專案。

4

FindStringExact

查詢組合框中與指定字串完全匹配的第一個專案。

5

SelectAll

選擇組合框可編輯區域中的所有文字。

組合框控制元件的事件

以下是組合框控制元件的一些常用事件:

序號 事件和描述
1

DropDown

組合框的下拉部分顯示時發生。

2

DropDownClosed

組合框的下拉部分不再可見時發生。

3

DropDownStyleChanged

組合框的 DropDownStyle 屬性更改時發生。

4

SelectedIndexChanged

組合框控制元件的 SelectedIndex 屬性更改時發生。

5

SelectionChangeCommitted

所選專案已更改且更改顯示在組合框中時發生。

示例

在此示例中,讓我們用各種專案填充組合框,獲取組合框中所選的專案並在列表框中顯示它們,並對專案進行排序。

拖放一個組合框來儲存專案,一個列表框來顯示所選專案,四個按鈕控制元件分別用於新增所選專案的列表框,填充組合框,對專案進行排序以及清除組合框列表。

新增一個標籤控制元件,用於顯示所選專案。

Result Form

在程式碼編輯器視窗中新增以下程式碼:

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 = "tutorialspont.com"
   End Sub
   
   'sends the selected items to the list box
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      If ComboBox1.SelectedIndex > -1 Then
          Dim sindex As Integer
          sindex = ComboBox1.SelectedIndex
          Dim sitem As Object
          sitem = ComboBox1.SelectedItem
          ListBox1.Items.Add(sitem)
      End If
   End Sub
   
   'populates the list
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      ComboBox1.Items.Clear()
      ComboBox1.Items.Add("Safety")
      ComboBox1.Items.Add("Security")
      ComboBox1.Items.Add("Governance")
      ComboBox1.Items.Add("Good Music")
      ComboBox1.Items.Add("Good Movies")
      ComboBox1.Items.Add("Good Books")
      ComboBox1.Items.Add("Education")
      ComboBox1.Items.Add("Roads")
      ComboBox1.Items.Add("Health")
      ComboBox1.Items.Add("Food for all")
      ComboBox1.Items.Add("Shelter for all")
      ComboBox1.Items.Add("Industrialisation")
      ComboBox1.Items.Add("Peace")
      ComboBox1.Items.Add("Liberty")
      ComboBox1.Items.Add("Freedom of Speech")
      ComboBox1.Text = "Select from..."
   End Sub
   'sorting the list
   
   Private Sub Button3_Click(sender As Object, e As EventArgs)
      ComboBox1.Sorted = True
   End Sub
   'clears the list
   
   Private Sub Button4_Click(sender As Object, e As EventArgs)
      ComboBox1.Items.Clear()
   End Sub
   'displaying the selected item on the label
   
   Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) _
     Handles ListBox1.SelectedIndexChanged
      Label1.Text = ComboBox1.SelectedItem.ToString()
   End Sub
End Class

當以上程式碼執行並使用 Microsoft Visual Studio 工具欄中可用的“啟動”按鈕執行時,它將顯示以下視窗:

Result Form

單擊各種按鈕以檢查每個按鈕執行的操作:

Result Form
vb.net_basic_controls.htm
廣告

© . All rights reserved.