在VS2010中,当我们使用WinForm的时候,如果在DataGridView中设置一个下拉列表列,也就是DataGridViewComboBoxColumn,如图:
在这里边可以自动设置这一列的绑定数据源DataSource以及DisplayMember和ValueMember,后来发现设置了这一列的数据源后,在DataGridView中任何一行,这一列的数据源都是原先设定的那个,不可以改变,这就跟我当时的初衷有所违背,因为我是想在每行内容不同,下拉列表这列所显示的内容也不同。在网上收拾了好多资料,最后终于在同学的帮助下完成了这段代码:
foreach (DataRow row2 in tableBatch.Rows) { ((DataGridViewComboBoxCell)dgvRetailDetail.Rows[n - 1].Cells["Colre_batch"]).Items.Add(row2["batch_id"]); }
这里我用的是Items的添加,当然你也可以设置DataSource。
需要注意的就是关键词DataGridViewComboBoxCell,而不是我们想当然的DataGridViewComboBoxColumn。