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程序。
展开
 我来答
173199732
推荐于2017-12-16 · TA获得超过268个赞
知道答主
回答量:277
采纳率:0%
帮助的人:235万
展开全部
首先定义一个公共的方法
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);
华佗之父
2011-09-28 · TA获得超过1241个赞
知道小有建树答主
回答量:1623
采纳率:0%
帮助的人:1107万
展开全部
两种写法,一:每个都要写,例如:
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,获取控件的类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang4717
2011-09-28
知道答主
回答量:12
采纳率:0%
帮助的人:15.5万
展开全部
直接遍历整个 控件集,在控件集中找到 ComboBox的实例
然后给每个ComboBox绑定上相同的数据源。
foreach (Control control in Controls) {
if (control is ComboBox) {
ComboBox comboBox = (ComboBox)control;
comboBox.DataSource = ds.Tables[0].DefaultView;
//其他操作
}
}
追问
哥们 你这种方法 牵一发而动全身 ,改变任何一个comboBox的值 其余的都会改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzyeilin
2011-09-28 · TA获得超过470个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:137万
展开全部
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";
追问
哥们 你这个少了个 DataSet ds2 = banci.GetList(""); 每个comboBox都要写这一句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式