DataGridView值的格式

时间:2010-03-17 10:59:02

标签: vb.net winforms datagridview

我有一个DataGridView,它从SQL Server数据库中的表填充。其中一列是price

DGV中的列类型自动设置为十进制。

在某些情况下,我需要在此列文本的单元格中写入“无”,而不是价格。

我该怎么做?

DGV.Item("price", 0).Value = "none" 不起作用,因为细胞的十进制类型。

2 个答案:

答案 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;
    }
}