comboBox控件:下拉列表框
listBox控件:列表控件用户可以选择一个或者多个条目,当列表项目过多时,ListBox会自动添加滚动条,使用户可以滚动查阅所有选项。ListBox可以预先设定列表内容,也可以绑定其他控件或数据库,自动更新条目,把数据逐一显示出来。
1. comboBox控件、listBox控件都有属性DisplayMember和ValueMember;
在得到数据集后,只要设定好这类组件的三个属性就可以完成数据绑定了,这三个属性是:"DisplayMember"、 "ValueMember"、"DataSource"。
DataSource是要显示的数据集
DisplayMember绑定的是显示给用户的数据
ValueMember绑定的是对应的值
2.listBox增加,插入或者删除内容
listBox1.Items.Add("要增加的条目文本");
//将在列表后面添加
listBox1.Items.Insert(i, "要增加的条目文本");
//将在索引为i的条目后面插入一条新条目
listBox1.Items.Remove("在此放入你要移除条目的文本内容");
//删除是用的是文本内容,而不是索引
listBox1.Items.Clear();
//清空列表所有条目
listBox1.ClearSelected();
//取消所有选中项,即变为未选中状态
3. c#中,如果用到了listBox这个控件,如果你想用它来显示多列,那么你就要注意了,listBox有一个属性叫Multicolumn
当Multicolumn = true,意思就是说,当列表框一列显示不了所有的items时,就会换列显示,而不是在项目超过CheckedListBox的高度时显示垂直滚动条,并不是我们想象的那个表单的多列.
如果您真的需要显示多列,可以考虑真正的多列控件DataGridView或ListView
4.listBox没有多列显示这个功能,要实现多个数据的展示的效果,有两个方法显示
方法一:
查询的时候就使用函数concat()将字段连接起来,sql语句如下:
SELECT concat(D.STUDENTID ,D.STUDENTNAME) as student1 FROM student_inf D
然后listBox.DisplayMember = "student1";
方法二:
通过ListItem实现
OracleDataReader readInf = cmdInf.ExecuteReader(CommandBehavior.CloseConnection);
List<ListItem> lis = new List<ListItem>();
while (readInf.Read())
{
string strAbsStu = readInf["STUDENTID"].ToString() + "," + readInf["STUDENTNAME"].ToString();
lis.Add(new ListItem(strAbsStu));
}
listBox.DataSource = lis;
OracleDataReader readInf = cmdInf.ExecuteReader(CommandBehavior.CloseConnection);
while (readInf.Read())
{
string strAbsStu = readInf["STUDENTID"].ToString() + "," + readInf["STUDENTNAME"].ToString();
ltbAbsNum.Items.Add(strAbsStu);
}