.NetFramework 2.0里提供的DataGridViewComboBoxColumn 只有在以下情况下才正常工作:它的所有单元格值(由 DataGridView.DataSource 属性填充)与选择的范围(由 DataSource 属性或 Items 属性填充)之间存在映射。如果此映射不存在,则当该列位于视图中时,会出现消息“进行格式设置时出现错误,显示”。因此,这个ComboBox无法进行自由编辑,我写了个扩展的 DataGridViewComboEditBoxColumn 类实现了ComboBoxStyle.DropDown的功能,代码的关键点为两处,一是在显示时将ComboBoxColumn以及ComboBox的Items添加入所有可能出现的项,在GetFormattedValue时实现,二是在编辑验证ComboBox数据时即时插入新项,在ComboBox.Validating时实现。
真正的DataGridViewComboBoxColumn    public class DataGridViewComboEditBoxCell : DataGridViewComboBoxCell

相关文章: