VB.Net ComboBox 控件及示例
什么是组合框控件?
组合框控件可帮助您显示一个包含许多项目的下拉列表。可以将其视为一个文本框(用户在其中输入文本)和一个下拉列表(用户从中选择项目)的组合。请注意,组合框一次只显示一个项目。
创建组合框
组合框可以如下创建
步骤 1) 创建一个新的应用程序。
步骤 2) 从工具箱将组合框控件拖到窗体上。
您将已创建了一个组合框控件。
向组合框添加项目
既然我们已经创建了组合框,让我们演示如何向其中添加项目。
双击您已添加的组合框控件。您将从设计选项卡切换到代码选项卡。
要向组合框控件添加项目,我们使用 Items 属性。让我们通过向组合框添加两个项目“男”和“女”来演示这一点。
ComboBox1.Items.Add("Male") ComboBox1.Items.Add("Female")
我们也可以选择在设计时从属性窗口向组合框添加项目。步骤如下:
步骤 1) 打开设计选项卡并单击组合框控件。
步骤 2) 转到属性窗口并查看 Items 选项。
步骤 3) 单击位于 (Collection) 右侧的“…”按钮。
步骤 4)您将看到一个新窗口。您应该在此处向组合框添加项目,如下所示:
步骤 5) 输入完项目后,单击“确定”按钮。
步骤 6) 单击顶部工具栏中的“开始”按钮,然后单击组合框上的下拉图标。
项目已成功添加到组合框控件。
选择组合框项目
您可能需要设置窗体加载时默认选中的项目。您可以通过 SelectedItem() 方法来实现这一点。例如,要将默认选择的性别设置为“男”,您可以使用以下语句:
ComboBox1.SelectedItem = "Male"
运行代码后,组合框控件应如下所示:
检索组合框值
您可以获取组合框中选定的项目。这可以通过 text 属性来完成。让我们使用我们上面有两个项目(即“男”和“女”)的组合框来演示这一点。请遵循以下步骤:
步骤 1) 双击组合框以打开包含 VB.NET 代码的选项卡。
步骤 2) 添加以下代码:
Public Class Form1 Private Sub ComboBox1_SelectedIndexChanged(sd As Object, evnt As EventArgs) Handles ComboBox1.SelectedIndexChanged Dim var_gender As String var_gender = ComboBox1.Text MessageBox.Show(var_gender) End Sub End Class
步骤 3) 单击工具栏中的“开始”按钮以执行代码。您应该会看到以下窗体:
步骤 4) 单击下拉按钮并选择您的性别。在我的例子中,我选择了“男”,然后我得到以下结果:
这是代码的屏幕截图:
代码解释
- 创建一个名为 Form1 的类。该类将是公共可访问的,因为其访问修饰符已设置为 Public。
- 名为 ComboBox1_SelectedIndexChanged 的子过程开始。当您从设计选项卡双击组合框控件时,它会自动生成。当您从组合框中选择项目时,将调用此子过程。sd As Object 引用了引发事件的对象,而 event As EventArgs 包含事件数据 s。
- 创建一个名为 var_gender 的字符串整数。
- 将变量 var_gender 的值设置为在组合框中选择的项目。
- 在 MesageBox 中打印变量 var_gender 的值。
- ComboBox1_SelectedIndexChanged 子过程结束。
- Form1 类结束。
移除组合框项目
您可以从组合框中移除项目。您可以通过两种方式完成此操作。您可以使用项目索引或项目名称。
使用项目索引时,您应该使用 Items.RemoveAt() 属性,如下所示:
ComboBox1.Items.RemoveAt(1)
在上面的示例中,我们正在移除位于组合框索引 1 处的项目。请注意,组合框索引从索引 0 开始,这意味着上述命令将移除组合框中的第二个项目。
要使用名称移除项目,您应该使用 Items.Remove() 属性,如下所示:
ComboBox1.Items.Remove("Female")
上面的代码应该会从 ComboBox1 中移除名为 Female 的项目。
绑定数据源
可以通过从数据集中填充组合框。考虑下面的 SQL 查询:
select emp_id, emp_name from employees;
您可以在程序中创建数据源,然后使用以下代码绑定它:
comboBox1.DataSource = ds.Tables(0) comboBox1.ValueMember = "emp_id" comboBox1.DisplayMember = "emp_name"
这将为您提供一种简单的方法来使用数据填充组合框控件,而无需键入每个单独的项目。
SelectedIndexChanged 事件
当您更改组合框中的选定项目时,将调用此类事件。当您需要在更改组合框中的选定项目时执行操作时,应使用此事件。让我们通过示例来演示这一点:
步骤 1) 创建一个新的 Windows 窗体应用程序。
步骤 2) 之后,您需要将两个组合框控件拖放到窗体上。
步骤 3) 双击窗体内部以打开代码选项卡。输入以下代码:
Public Class Form1 Private Sub Form1_Load(sd As Object, evnt As EventArgs) Handles MyBase.Load ComboBox1.Items.Add("Males") ComboBox1.Items.Add("Females") End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged ComboBox2.Items.Clear() If ComboBox1.SelectedItem = "Males" Then ComboBox2.Items.Add("Nicholas") ComboBox2.Items.Add("John") ElseIf ComboBox1.SelectedItem = "Females" Then ComboBox2.Items.Add("Alice") ComboBox2.Items.Add("Grace") End If End Sub End Class
步骤 4) 单击顶部栏中的“开始”按钮以运行代码。您应该会看到以下输出:
步骤 5) 单击第一个组合框上的下拉按钮并选择“男”。将鼠标光标移到第二个组合框上,然后单击其下拉按钮。查看可用项目:
步骤 6) 移至第一个组合框并选择“女”。移至第二个组合框并查看可用项目:
这是代码的屏幕截图:
代码解释
- 创建一个名为 Form1 的类。
- 名为 Form1_Load() 的子过程开始。当窗体加载时,它将被触发。sd As Object 引用了引发事件的对象,而 system As EventArgs 包含事件数据。
- 将项目 Males 添加到 ComboBox1。
- 将项目 Females 添加到 ComboBox1。
- Form1_Load() 子过程结束。
- 名为 ComboBox1_SelectedIndexChanged() 的子过程开始。当在第一个组合框中选择项目时,将调用此过程。sender As Object 引用了引发事件的对象,而 e As EventArgs 包含事件数据。
- 使 ComboBox2 为空,清除其中的所有项目。
- 创建一个条件。检查 ComboBox1 中的选定项目是否为 Males。
- 当上述条件为真时(即,在 ComboBox1 中选择的项目是 Male),将项目 Nicholas 添加到 ComboBox2。
- 当上述条件为真时(即,在 ComboBox1 中选择的项目是 Males),将项目 John 添加到 ComboBox2。
- 创建一个条件。检查 ComboBox1 中的选定项目是否为 Females。
- 当上述条件为真时(即,在 ComboBox1 中选择的项目是 Females),将项目 Alice 添加到 ComboBox2。
- 当上述条件为真时(即,在 ComboBox1 中选择的项目是 Females),将项目 Grace 添加到 ComboBox2。
- If 块结束。
- ComboBox1_SelectedIndexChanged() 子过程结束。
- Form1 类结束。
摘要
- 通过从工具箱拖动组合框并将其放到窗体上来创建组合框。
- 它为我们提供了一种向用户呈现多种选项的方式。
- 我们可以在加载窗体时设置组合框中默认选中的项目。
- SelectedIndexChanged 事件帮助我们指定在组合框中选择特定项目时要执行的操作。