设置不可编辑
将 DropDownStyle 属性设置为 DropDownList 即可
属性值解释:
- Simple 简单的下拉列表框(始终显示列表)、
- DropDown 可以编辑,与有下拉列表。默认.
- DropDownList 只有下拉列表,不能编辑。
添加项目
fileLstBx.Items.Add(fileName);
获取选中的值
startHourCB.Text
判断项目是否存在
fileLstBx.Items.Contains(fileName)
判断项目不存在就添加
if(!fileLstBx.Items.Contains(fileName)) {
fileLstBx.Items.Add(fileName);
}
获取项目的总数
fileLstBx.Items.Count
设置选中
方式一:
指定索引
startHourCB.SelectedIndex= 0;
索引二:
指定值
Combobox.SelectText = “默认选中文本”;
但是如果Combobox的DropDowStyle属性,选择为DropDownList则上面的方法就不能用了
用下面的方法比较好用
Combobox.SelectedIndex = Combobox.Items.IndexOf(“默认选中文本”);
https://blog.csdn.net/easyboot/article/details/68062196
遍历
方式一(推荐)
使用传统 for 语句遍历,麻烦啰嗦,但通用
for(int flbIndex = 0; flbIndex < fileLstBx.Items.Count; flbIndex++)
{
string file = fileLstBx.Items[flbIndex].ToString();
}
方式二
使用简单,但有些情况会报错
foreach (string file in fileLstBx.Items)
}
注意:使用该方式,不能操作 ListBox,如:设置选中、添加、删除等操作,否则报错,如下:
System.InvalidOperationException:“此枚举数绑定到的列表已被修改。仅在列表没有更改时才能使用枚举数。”
清空
fileLstBx.Items.Clear();
删除选中的项目
// 选中项的数量不为0时,就一直删除
while (fileLstBx.SelectedItems.Count > 0) {
fileLstBx.Items.Remove(fileLstBx.SelectedItem);
}
绑定数据
给 ComboBox 指定数据时,通常像设置 HTML 的 <select> 控件那样,也就是 显示值 和 value值,实现方法有多种
绑定 List 类型
list里面一般是对象,这里为了简单,使用匿名对象
List<object> list = new List<object> {
new { display = "求和", value = "sum" },
new { display = "平均值",value = "avg" }
};
comboBox1.DataSource = list;
// 指定value值
comboBox1.ValueMember = "value";
// 指定显示值
comboBox1.DisplayMember = "display";
获取选中的value:
// 获取或设置由ValueMember 属性指定的成员属性的值
comboBox1.SelectedValue
// 获取或设置ComboBox 的可编辑部分中选定的文本
comboBox1.SelectedText
数据集 DataTable 绑定
这个比较常见,很简单,一般是从数据库中查询出来,很少像下面这样封装数据
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("id");
DataColumn dc2 = new DataColumn("name");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
DataRow dr1 = dt.NewRow();
dr1["id"] = "1";
dr1["name"] = "aaaaaa";
DataRow dr2 = dt.NewRow();
dr2["id"] = "2";
dr2["name"] = "bbbbbb";
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
comboBox1.DataSource = dt;
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "name";
绑定 Dictionary 类型数据(不推荐)
有点特殊,不能直接绑定,需要借助类BindingSource才可以完成绑定
Dictionary<int, string> kvDictonary = new Dictionary<int, string>();
kvDictonary.Add(1, "11111");
kvDictonary.Add(2, "22222");
kvDictonary.Add(3, "333333");
// 需要使用 BindingSource 类完成绑定
BindingSource bs = new BindingSource();
bs.DataSource = kvDictonary;
comboBox1.DataSource = bs;
// 指定value值
comboBox1.ValueMember = "Key";
// 指定显示值
comboBox1.DisplayMember = "Value";