我有3列dgv,ProductID |产品说明|当前折扣。
当前,这3列是textbox列,是使用数据源绑定到SQL表的方式填充的,该表工作正常。
我真正想要的是将CurrentDiscount列设置为ComboBoxColumn,在加载dgv时,它将使用数据库表中的当前数据填充单元格(在每一行上),但是允许我使用ComboBox功能来将折扣值更改为其他值。
我一直在搜索几个小时,无法弄清楚该怎么做。
任何帮助将不胜感激。
P.S,当我创建dgv并使用向导为其分配数据源时,我毫无用意地共享当前代码,因为它们都是以编程方式生成的(并且是巨大的)。
答案 0 :(得分:0)
如果每行的选择列表相同,则使用DataGridViewComboBoxColumn非常简单。
这里是一个示例,假设DiscountTbl是一个包含折扣列表的DataTable,并具有DiscountId和DiscountName列:
DataGridViewComboBoxColumn grdCol = new DataGridViewComboBoxColumn();
grdCol.DataSource = discountTbl;
grdCol.DataPropertyName = "DiscountId";
grdCol.DisplayMember = "DiscountName";
grdCol.HeaderText = "Discount";
grdCol.Name = "DiscountId";
grdCol.ValueType = typeof(System.Int32);
dgv.Columns.Add(grdCol);