c# comboBox控件绑定表字段问题。如何同时绑定多个comboBox呢,使其下拉列表的内容都是一样的 见详细补充
我定义了多个comboBox,但下面的代码只能绑定一个comboBox。要是一个一个绑定代码太多了。能不能同时绑定多个comboBox呢,使其下拉列表的内容都是一样的。M...
我定义了多个comboBox,但下面的代码只能绑定一个comboBox。要是一个一个绑定代码太多了。能不能同时绑定多个comboBox呢,使其下拉列表的内容都是一样的。
Maticsoft.BLL.T_Banci banci = new Maticsoft.BLL.T_Banci();
DataSet ds = banci.GetList("");
comboBox1.DataSource=ds.Tables[0].DefaultView;
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
是c# winform程序。 展开
Maticsoft.BLL.T_Banci banci = new Maticsoft.BLL.T_Banci();
DataSet ds = banci.GetList("");
comboBox1.DataSource=ds.Tables[0].DefaultView;
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
是c# winform程序。 展开
4个回答
展开全部
首先定义一个公共的方法
public void BindComBox(ComboBox comBox,DataSet ds)
{
comBox.DataSource=ds.Tables[0].DefaultView;
comBox.DisplayMember = "Type";
comBox.ValueMember = "Type";
}
然后在页面上调用
Page_Load()
{
Maticsoft.BLL.T_Banci banci = new Maticsoft.BLL.T_Banci();
DataSet ds = banci.GetList("");
BindComBox(comBox1,ds);
BindComBox(comBox2,ds);
BindComBox(comBox3,ds);
BindComBox(comBox4,ds);
BindComBox(comBox5,ds);
BindComBox(comBox6,ds);..................................
}
public void BindComBox(ComboBox comBox,DataSet ds)
{
comBox.DataSource=ds.Tables[0].DefaultView;
comBox.DisplayMember = "Type";
comBox.ValueMember = "Type";
}
然后在页面上调用
Page_Load()
{
Maticsoft.BLL.T_Banci banci = new Maticsoft.BLL.T_Banci();
DataSet ds = banci.GetList("");
BindComBox(comBox1,ds);
BindComBox(comBox2,ds);
BindComBox(comBox3,ds);
BindComBox(comBox4,ds);
BindComBox(comBox5,ds);
BindComBox(comBox6,ds);..................................
}
更多追问追答
追问
哥们 你这种方法 牵一发而动全身 ,改变任何一个comboBox的值 其余的都会改变。有没有什么改进方法呢?
追答
1.定义方法
void BindComBox(DataSet ds, ComboBox cmb)
{
cmb.DisplayMember = "Type";
cmb.ValueMember = "Type";
foreach (DataRow row in ds.Tables[0].Rows)
{
cmb.Items.Add(row);
}
}
2.
Maticsoft.BLL.T_Banci banci = new Maticsoft.BLL.T_Banci();
DataSet ds = banci.GetList("");
BindComBox(ds, comboBox1);
BindComBox(ds, comboBox2);
BindComBox(ds, comboBox3);
BindComBox(ds, comboBox4);
展开全部
两种写法,一:每个都要写,例如:
comboBox1.DataSource=ds.Tables[0].DefaultView;
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
comboBox2.DataSource=ds.Tables[0].DefaultView;
comboBox2.DisplayMember = "Type";
comboBox2.ValueMember = "Type";
comboBox3.DataSource=ds.Tables[0].DefaultView;
comboBox3.DisplayMember = "Type";
comboBox3.ValueMember = "Type";
第二种方法是,循环窗体的控件,如果控件类型是combobox,就绑定,例如:
foreach(Control com in this.Controls)
{
if(com.controlType.toString()=="System.windows.form.ComboBox"){
com.DataSource=ds.Tables[0].DefaultView;
com.DisplayMember = "Type";
com.ValueMember = "Type";
}
}
以上代码只是我手写的,你看着写吧
comboBox1.DataSource=ds.Tables[0].DefaultView;
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
comboBox2.DataSource=ds.Tables[0].DefaultView;
comboBox2.DisplayMember = "Type";
comboBox2.ValueMember = "Type";
comboBox3.DataSource=ds.Tables[0].DefaultView;
comboBox3.DisplayMember = "Type";
comboBox3.ValueMember = "Type";
第二种方法是,循环窗体的控件,如果控件类型是combobox,就绑定,例如:
foreach(Control com in this.Controls)
{
if(com.controlType.toString()=="System.windows.form.ComboBox"){
com.DataSource=ds.Tables[0].DefaultView;
com.DisplayMember = "Type";
com.ValueMember = "Type";
}
}
以上代码只是我手写的,你看着写吧
更多追问追答
追问
if(com.controlType.toString()=="System.windows.form.ComboBox"){
这句不对 没有controlType这个属性
追答
那就是我记错了,其他属性,反正就是***Type,获取控件的类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接遍历整个 控件集,在控件集中找到 ComboBox的实例
然后给每个ComboBox绑定上相同的数据源。
foreach (Control control in Controls) {
if (control is ComboBox) {
ComboBox comboBox = (ComboBox)control;
comboBox.DataSource = ds.Tables[0].DefaultView;
//其他操作
}
}
然后给每个ComboBox绑定上相同的数据源。
foreach (Control control in Controls) {
if (control is ComboBox) {
ComboBox comboBox = (ComboBox)control;
comboBox.DataSource = ds.Tables[0].DefaultView;
//其他操作
}
}
追问
哥们 你这种方法 牵一发而动全身 ,改变任何一个comboBox的值 其余的都会改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
comboBox1.DataSource=ds.Tables[0].DefaultView;
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
comboBox2.DataSource=ds.Tables[0].DefaultView;
comboBox2.DisplayMember = "Type";
comboBox2.ValueMember = "Type";
comboBox3.DataSource=ds.Tables[0].DefaultView;
comboBox3.DisplayMember = "Type";
comboBox3.ValueMember = "Type";
comboBox4.DataSource=ds.Tables[0].DefaultView;
comboBox4.DisplayMember = "Type";
comboBox4.ValueMember = "Type";
comboBox5.DataSource=ds.Tables[0].DefaultView;
comboBox5.DisplayMember = "Type";
comboBox5.ValueMember = "Type";
comboBox6.DataSource=ds.Tables[0].DefaultView;
comboBox6.DisplayMember = "Type";
comboBox6.ValueMember = "Type";
comboBox7.DataSource=ds.Tables[0].DefaultView;
comboBox7.DisplayMember = "Type";
comboBox7.ValueMember = "Type";
comboBox1.DisplayMember = "Type";
comboBox1.ValueMember = "Type";
comboBox2.DataSource=ds.Tables[0].DefaultView;
comboBox2.DisplayMember = "Type";
comboBox2.ValueMember = "Type";
comboBox3.DataSource=ds.Tables[0].DefaultView;
comboBox3.DisplayMember = "Type";
comboBox3.ValueMember = "Type";
comboBox4.DataSource=ds.Tables[0].DefaultView;
comboBox4.DisplayMember = "Type";
comboBox4.ValueMember = "Type";
comboBox5.DataSource=ds.Tables[0].DefaultView;
comboBox5.DisplayMember = "Type";
comboBox5.ValueMember = "Type";
comboBox6.DataSource=ds.Tables[0].DefaultView;
comboBox6.DisplayMember = "Type";
comboBox6.ValueMember = "Type";
comboBox7.DataSource=ds.Tables[0].DefaultView;
comboBox7.DisplayMember = "Type";
comboBox7.ValueMember = "Type";
追问
哥们 你这个少了个 DataSet ds2 = banci.GetList(""); 每个comboBox都要写这一句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询