绑定了DateSource的ComboBox是不能用Items.Add方法最近使用了ComboBox控件,简单总结一下有关它的使用(绑定、增加选项、清除):
一、ComboBox的绑定
OleDB oledb = new OleDB();
private void Form1_Load(object sender, EventArgs e)
...{
DataTable dt = oledb.Filldatatable("Select ID,Name From Table1");//函数返回SQL相关的DataTable
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Name";//显示内容
comboBox1.ValueMember = "ID";//选项对应的value
}
private void Form1_Load(object sender, EventArgs e)
...{
DataTable dt = oledb.Filldatatable("Select ID,Name From Table1");//函数返回SQL相关的DataTable
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Name";//显示内容
comboBox1.ValueMember = "ID";//选项对应的value
}
二、为ComboBox增加选项
绑定了DateSource的ComboBox是不能用Items.Add方法增加选项的,只能通过修改DataTable来实现,比如想在上面实现的ComboBox1中增加选项“---全部---”,可以这样实现:
private void Form1_Load(object sender, EventArgs e)
...{
DataTable dt = oledb.Filldatatable("Select ID,Name From Table1");//函数返回SQL相关的DataTable
DataRow dr = dt.NewRow();
dr["ID"] = 0;
dr["Name"] = "---全部---";
dt.Rows.InsertAt(dr, 0);//使用dt.Rows.Add(dr)只是把选项追加到最后,而使用dt.Rows.InsertAt(dr, 0)可以把增加的选项插入到相应的位置上
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Name";//显示内容
comboBox1.ValueMember = "ID";//选项对应的value
}
...{
DataTable dt = oledb.Filldatatable("Select ID,Name From Table1");//函数返回SQL相关的DataTable
DataRow dr = dt.NewRow();
dr["ID"] = 0;
dr["Name"] = "---全部---";
dt.Rows.InsertAt(dr, 0);//使用dt.Rows.Add(dr)只是把选项追加到最后,而使用dt.Rows.InsertAt(dr, 0)可以把增加的选项插入到相应的位置上
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Name";//显示内容
comboBox1.ValueMember = "ID";//选项对应的value
}
三、清除ComboBox中的选项
如果ComboBox中的选项是手写出来的,则通过comboBox1.Items.Clear();方法来实现,而绑定过DataSource的ComboBox是不能使用这个方法的,其实这样的情况下清除选项也很简单,用comboBox1.DataSource=null;就可以解决了。
先写这么多了,树懒要继续工作了……