2016-11-03 48 views
0

我在我的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##"; 
    } 
} 
+1

有什么问题用你的代码? – wdosanjos

+0

需要使用此代码格式化具有类型货币的特定单元格没有得到任何错误没有得到输出 – Venkat

回答

0

现在不能测试,但我认为这是你在找什么,设置一个断点,并确保您的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

+0

谢谢 将默认单元格样式更改为单元格,然后其工作单个单元格其他明智其适用于整列 gv_EmployeeAdditional.Rows [e .RowIndex] .Cells [ “值”] Style.Format = “N2”。 gv_EmployeeAdditional.Rows [e.RowIndex] .Cells [“Value”]。ValueType = typeof(decimal); – Venkat

+0

@Venket,很高兴我可以帮助你到达那里,还没有在Winforms上工作过,但回想起一个类似的问题。 – EaziLuizi