[C#]C#中的ComboBox控件
当使用C#中的ComboBox控件时,你可以通过以下详细方法使用它:
-
在窗体上放置 ComboBox 控件:
在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一个 ComboBox 控件到你的窗体上。
-
设置 ComboBox 的属性:
- Items:用于设置或获取 ComboBox 中的选项集合。你可以通过添加项到集合中来动态添加选项。
- Text:用于设置或获取当前选中项的文本。
- SelectedIndex:用于设置或获取当前选中项的索引。索引从 0 开始,-1 表示没有选中项。
- DropDownStyle:用于设置下拉列表的样式。常用的值有:
- DropDown:显示下拉列表,用户可以从中选择。
- DropDownList:只显示下拉列表,用户无法手动输入。
-
处理 ComboBox 的事件:
- SelectedIndexChanged:当 ComboBox 的选中项发生改变时触发的事件。你可以通过订阅该事件,在选中项改变时执行特定的操作。
下面是一个示例,演示如何使用 ComboBox 控件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Windows.Forms;
namespace ComboBoxExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
// 初始化 ComboBox 的选项
comboBox.Items.Add("选项1");
comboBox.Items.Add("选项2");
comboBox.Items.Add("选项3");
// 设置默认选中项
comboBox.SelectedIndex = 0;
}
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
// 当选中项发生改变时触发的事件
string selectedOption = comboBox.SelectedItem.ToString();
MessageBox.Show("选中的选项是:" + selectedOption);
}
private void btnGetSelected_Click(object sender, EventArgs e)
{
// 获取当前选中项
string selectedOption = comboBox.SelectedItem.ToString();
MessageBox.Show("当前选中的选项是:" + selectedOption);
}
private void btnAddOption_Click(object sender, EventArgs e)
{
// 添加新选项
string newOption = textBoxNewOption.Text;
comboBox.Items.Add(newOption);
MessageBox.Show("已添加新选项:" + newOption);
}
}
}
在上述示例中,我们创建了一个名为 “MainForm” 的窗体应用程序,并放置了一个 ComboBox 控件和两个按钮和一个文本框。在窗体的加载事件中,我们初始化了 ComboBox 的选项,并将第一个选项设为默认选中。当选中项发生改变时,会触发 SelectedIndexChanged 事件,弹出选中项的消息框。点击按钮时,可以获取当前选中项的文本,或者添加新的选项到 ComboBox 中。
附更多实例代码
1.让用户只能选择项。
很简单,设置ComboBox的属性DropDownStyle为DropDownList即可。
2.往ComboBox中添加新项。
1
2
3
4
5
6
7
private void Form1_Load(object sender, EventArgs e)
{
this.cmbTest.Items.Add("A");
this.cmbTest.Items.Add("B");
this.cmbTest.Items.Add("C");
this.cmbTest.Items.Add("D");
}
//效果截图如下
3.设置默认选择的项。
1
this.cmbTest.SelectedIndex = 3; //选择第四项,注意,编号从0开始
4.获取选择的项的文本。
1
MessageBox.Show(this.cmbTest.SelectedItem.ToString());
5.遍历ComboBox控件中每一项的文本:
1
2
3
4
5
6
7
8
9
//从最后一项开始遍历
for (int i = this.cmbRoomId.Items.Count - 1; i >= 0;i-- )
{
this.cmbRoomId.SelectedIndex=i;//选择第i项
if (this.cmbRoomId.Text.Trim().Equals("Admin"))//判断项的文本
{
break;//找到就停止遍历
}
}
6.数据绑定:
在SQL2005数据库中,我有两列renterID和renterName
//截图如下
现在我想让ComboBox控件显示的是renterName,而ComboBox实际的值却是renterID,
我们如何做呢?
先看下我们写的SQL语句:select renterId,renterName from Renter
有了SQL语句,怎么获取数据集DataSet,这个不用我说了吧?
有了数据集后,我们就可以将其绑定到ComboBox中了。
代码如下:
1
2
3
4
5
6
7
8
9
10
string sql="select renterId,renterName from Renter";
//SqlHelper.GetConnection()的作用是获取一个数据库连接对象,这是我自己封装的方法,请灵活应变。
using (SqlDataAdapter da = new SqlDataAdapter(sql,SqlHelper.GetConnection()))
{
DataSet ds = new DataSet();
da.Fill(ds);//填充数据集,即获取数据集
this.cmbRenter.DataSource = ds.Tables[0].DefaultView; //设置ComboBox的数据源
this.cmbRenter.DisplayMember = "renterName"; //让ComboBox显示renterName列
this.cmbRenter.ValueMember = "renterId"; //让ComboBox实际的值为renterId列
}
数据绑定好后,我们如何获取renterId的值呢?代码如下:
MessageBox.Show(this.cmbRenter.SelectedValue.ToString());
//效果截图如下:
希望这篇能帮助你理解和使用 ComboBox 控件的详细方法。

![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/d9755b9650f528ca2c88744b8723b6b5.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/9456469267626b43db391629752d2122.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/8fb992b43179a52accc3f7afa8d2bca2.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/b189d19c943b7a65350ce4caf8d0b80b.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/fea913a25f4667186862ecffe7d767f5.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/2bb0158cf844bafa7610fa1dccf39064.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/e765224d7a0ea9691d73922e31530ba7.jpeg)
![[C#]C#中的ComboBox控件](https://img-blog.csdnimg.cn/img_convert/112bb6884bceffd300af9ff587ae1899.jpeg)