DataGridView使用AutoGenerateColumns格式化十进制值

时间:2012-04-03 15:28:08

标签: c# winforms datagridview decimal-point

我有一个在winforms中使用AutoGenerateColumns的datagridview。有一个日期列,然后是包含数值的1-16个数据列。我希望将所有这些1-16个数据列格式化为4个小数位。

As per this post,您通过设计器设置DefaultCellStyle。我手动完成这个以获得我想要使用的格式。我在表单构造函数中设置了它:

this.dgv_PreviewGrid.DefaultCellStyle.Format = "N4";

我尝试过这种方式设置,并在DataBindingComplete事件的每一列上手动尝试。 没有任何事情发生!该应用程序滞后,好像正在进行四舍五入,但却没有。

此外,是否有msdn的链接或具有DefaultCellStyle格式列表的东西?找不到他们。

编辑:我发现使用格式“D4”而不是“N4”(十进制与数字) - >可能是我想要的格式,但它仍然无效。

1 个答案:

答案 0 :(得分:3)

您想要的MSDN页面是Standard Numeric Format Strings

您需要N或F格式说明符,而不是D. D表示整数。

设置grid.DefaultCellStyle.Format应该可以工作,但由于你有一个日期列,你需要覆盖该列的DefaultCellStyle,否则日期将不会显示。

数据源上数字属性的实际类型是什么?你确定它不是一个字符串吗?你是如何填充DataGridView的?

如果没有更多信息,很难猜出问题。如果您显示填充DataGridView的代码,它可能会有所帮助。