自定义DataGridview控件的进度条列。添加进度条列,并关联数据源属性后,运行报错如下:
DataGridView中发生以下异常:
System.FormatException:单元格的Formatted值的类型错误。
要替换此默认对话框,请处理DataError事件。
经确认,此错误,是由于DataGridview单元格赋值时,数值与单元格数据类型要求不一致。
比如,此DataGridviewCell为int类型,但赋值为null,或dbnull.value。都会引起此异常。
我的程序赋值为空,在自定义滚动条单元时,将值类型改为object。并在重绘时,根据value不同类型进一步处理。
错误代码:
public DataGridViewProgressBarCell()
{
this.ValueType = typeof(int);
}
改正后代码:
public DataGridViewProgressBarCell()
{
this.ValueType = typeof(object);
}
ps:参考网络上很多文章,都是注明了解决方案,未说明原因。我的答案仅供参考。