C#中,想实现当窗体载入后Combox控件下拉框中就有datagridview的第11列数据。怎么写这个代码呢?

我是这样实现的,但是有问题,请高手指点 ,感激不尽~~
private void FrmBaseValuesDo_Load(object sender, EventArgs e)
{
//窗体载入
this.comboBox1.DataSource = dataGridView1.Columns[11];
this.comboBox1.DisplayMember = "系数编号";//系数编号为取值的列名
}

我认为应该用循环,首先DataSource属性是个数据集,而不能用数组来赋值,如何用循环,我的理解是这样的。
设置一个泛型集合List<string> ls=new List<string>()(假如你的这一列是string类型的数据)。
通过循环
for(int i=0;i<this.dataGridView1.Rows.Count();i++)
{
ls.Add(this.dataGridView1.Columns[11].Cells[i].Value.ToString());
}
this.comboBox1.DataSource =ls;
。。。
也可以在循环中用this.comboBox1.Items.Add()的方式进行循环添加。
这个没有去重,你在开发过程中也要注意这一点。
我没有调试上面的程序,所以之前写的代码难免会有错误,你可以自己调试一下,你明白那个意思就可以了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-12
先把数据载入到dataGridView 然后读取第11条数据绑定到ComBox控件中追问

数据载入到dataGridView的语句写在load中了,但是还是有错误,具体的代码这么写呢?

追答

先把绑定到combox的代码注释掉,然后看看datagridview中可有第11条数据

先把绑定到combox的代码注释掉,然后看看datagridview中可有第11条数据

追问

datagridview中的确是有数据的,但是combox抛异常

追答

那就是绑定ComBox过程出错

如果实现在combobox控件输入框中输入值而下拉列表弹开并显示根据输入值...
在文本框的改变时间里面写代码 通过拿到的值去数据库查 comboBox.DataSource=查到的数据 comboBox1.DisplayMember="数据库的列名";或者 去循环去遍历 数据源 让后 combox.items.add(要显示的字段)

相似回答