我有一个DataGridView,它从SQL Server数据库中的表填充。其中一列是price
。
DGV中的列类型自动设置为十进制。
在某些情况下,我需要在此列文本的单元格中写入“无”,而不是价格。
我该怎么做?
DGV.Item("price", 0).Value = "none"
不起作用,因为细胞的十进制类型。
答案 0 :(得分:0)
了解实施IFormatProvider& ICustomFormatter ...
然后在DGV中,您可以通过ColumnFormatProvider将其指定为列格式。
答案 1 :(得分:0)
而不是所有这些,请使用datacolumn表达式属性。
如果您只想更改数据的显示方式(这就是您想要的内容),请挂钩CellFormatting事件。这是一般的想法(代码未经测试):
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (some_condition(e.ColumnIndex, e.RowIndex)) {
e.Value = "none";
e.FormattingApplied = true;
}
}