用户编辑后数据网格单元格格式未保留

本文关键字:单元格 格式 保留 网格 数据网 编辑 数据 用户 | 更新日期: 2023-09-27 18:00:05

我有一个数据网格,具有以下单元格格式的

datagrid.rows[0].cells[0].Value =1;
datagrid.rows[0].cells[0].Style.Format ="#k";

这很好,输出将是1k,但是当用户将单元格值示例编辑为2时,单元格格式将不会生效?

问题是如何在用户编辑后保留单元格格式?

感谢

用户编辑后数据网格单元格格式未保留

我猜您不是在使用底层数据源。您正在将DataGridViewRows手动插入DataGridView

如果您使用的是数据源,如果列数据类型是数字,则样式将在编辑和只读模式下工作。

在您的情况下,您需要处理DataGridViewCellFormatting事件,并在那里设置单元格的格式:

void dataGridView1_CellFormatting(object sender,
                                  DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0 && e.RowIndex == 0)
    {
        // if the underlying type is int
        int value;
        if(e.Value != null && int.TryParse(e.Value.ToString(), out value))
        {
            e.Value = value.ToString("#k");
            /*** OR ***
            e.Value = value;
            e.CellStyle.Format = "#k";
            */
        }
    }
}