我目前正在使用C#,我有以下代码在DGV中设置ComboBox列:
// Add the values of the combo box
dgvcbGeneric.DataSource = dtDataSource;
dgvcbGeneric.ValueMember = "ID";
dgvcbGeneric.DisplayMember = "Value";
dgvcbGeneric.DataPropertyName = strColumn;
dgvcbGeneric.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
dgvcbGeneric.DisplayStyleForCurrentCellOnly = true;
// vGenericCMB.SortMode = DataGridViewColumnSortMode.Automatic
dgvcbGeneric.DefaultCellStyle.NullValue = columns[strActualColumn].nullFormat;
// Add the new ComboBoxColumn of the DGV
dgvLink.Columns.Add(dgvcbGeneric);
一切正常,但DGV仅在单元格具有焦点时显示成员值:
有人可以解释为什么会出现这个问题吗?
答案 0 :(得分:3)
我自己发现了这个错误。基本上在DGV的DataSource中,列#34; Day"属于" Byte" (SQL中的tinyint)。 当代码尝试创建DataTable来填充DGV ComboBox列时; ID类型是"整数"。
解决方案是检查ID与列源的DataType。如果是不同的;抛出异常进行检查。