我有一个带有DataGridView的Winforms应用程序 .
网格的DataSource设置为BindingSource . BindingSource的DataSource是一组对象,它实现了IBindingList接口 . (实际上是基于样本的SortableBindingList类) .
如果我尝试在网格上设置属性AllowUserToAddRows,我会收到一条错误消息“属性值无效”,附加详细信息“从类型'位图'转换为'整数'类型无效 . ”
网格中的某些列显示图像,这些图像是只读的 .
这个错误消息试图告诉我什么?
使用属性AllowUserToaddRows有一些限制吗?
如果它引用网格中的特定列,或者表示行的类中的属性,如何找出导致问题的列或属性?
1 回答
我懂了 .
错误消息是DataGridViewImageCell的自定义实现中的函数GetFormattedValue()中的异常 .
在所有实际情况中,使用枚举值调用此函数,该值显示为图像 . 该函数将值转换为相关的枚举,然后选择几个图像中的一个 .
如果设置AllowUserToAddRows = true,则设计器调用函数GetFormattedValue并在value参数中传递图像 . 我(差)代码生成异常 .
我现在已经为这种情况添加了一些处理,我可以将AllowUserToAddRows设置为true .