在运行时转换 DataGridView 单元格类型
我的 datagridview 有一个复选框列,仅对其显示的数据中的某些记录有效。对于复选框无效的记录,我希望不显示任何内容 - 例如空白文本框。
因此,我需要在运行时动态地将单元格类型从复选框单元格更改为文本框单元格。我不能简单地更改列数据类型,因为该列需要混合使用文本框和复选框单元格类型。
到目前为止我有下面的代码。
this.deviceList1.DeviceGrid[colIndex, rowIndex] = new KryptonDataGridViewTextBoxCell()
this.deviceList1.DeviceGrid[colIndex, rowIndex].ReadOnly = true;
但是,这会生成 DataGridView 数据错误:
System.FormatException:已格式化 单元格值的类型错误。
My datagridview has a checkbox column that is only valid for some records in the data it is displaying. For the records for which a checkbox is not valid I wish to display nothing - a blank textbox for example.
Thus i need to dynamically change the cell type at run time from a checkbox cell to a textbox cell. I cannot simply change the column data type as the column needs to have a mix of textbox and checkbox cell types.
So far I have the code below.
this.deviceList1.DeviceGrid[colIndex, rowIndex] = new KryptonDataGridViewTextBoxCell()
this.deviceList1.DeviceGrid[colIndex, rowIndex].ReadOnly = true;
Howver this generates a DataGridView data error:
System.FormatException: Formatted
value of the cell has a wrong type.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
排序了。真的很简单。解决方案是确保为 Value 属性指定适当的值。即需要将其设置为字符串值。
Sorted it. Simple really. Solution is to ensure that the Value property is given an appropriate value. I.e it needs to be set to a string value.
您可以使用相关单元格的 OnPaint 事件处理程序,并在控件上绘制一个空白方块。这有点老套,我确信还有其他选择,但它确实有效。
You could use the OnPaint event handler for the cell in question and draw a blank square over the control. It's kind of hacky and I'm sure there are other options, but it works.