使用多种类型格式化列

本文关键字:格式化 类型 种类 | 更新日期: 2023-09-27 18:15:59

在我的datagridview列中有货币文本和数字类型值。我想使用下面的代码格式化货币值,但它不起作用。

private void gv_EmployeeAdditional_CellLeave(object sender, DataGridViewCellEventArgs e)
{
    if (gv_EmployeeAdditional.Rows[e.RowIndex].Cells["EmpDatatype"].Value.ToString() == "Currency")
    {
        gv_EmployeeAdditional[e.ColumnIndex, e.RowIndex-1].Style.Format = "#,##0.00##";
    }
}

使用多种类型格式化列

现在不能测试它,但我认为这是你正在寻找的,设置一个断点,并确保你进入if语句,然后运行几个测试用例…

    if (gv_EmployeeAdditional.Rows[e.RowIndex].Cells["EmpDatatype"].Value.ToString() == "Currency")
    {
        gv_EmployeeAdditional.Columns[e.ColumnIndex].DefaultCellStyle.Format = "N2";
        gv_EmployeeAdditional.Columns[e.ColumnIndex].ValueType = typeof(decimal);
        //gv_EmployeeAdditional[e.ColumnIndex, e.RowIndex - 1].Style.Format = "#,##0.00##";
    }

甚至可以试着设置这一行:

gv_EmployeeAdditional[e.ColumnIndex, e.RowIndex - 1].Style.Format = "N2";

c#中的格式化类型link here