DefaultCellStyle数字格式不起作用

时间:2016-06-23 22:20:25

标签: c# winforms datagridview

我有一个Datagridview导入数据,其中包含以下查询:

dt1 = dc.RunQuery("SELECT   dbo.Payment.[Date], dbo.Payment.id FROM dbo.Payment INNER JOIN dbo.Moein ON dbo.Payment.FK_MoeinCode = dbo.Moein.MoeinCode ORDER BY dbo.Payment.[Date] ASC");
dataGridView1.DataSource = dt1;
dataGridView1.Columns.Add("2", "Detail");
dataGridView1.Columns.Add("3", "X");
dataGridView1.Columns.Add("4", "Y");
dataGridView1.Columns.Add("5", "Remain");

更多......

在代码的最后,我使用下面的代码:

dataGridView1.Columns[3].DefaultCellStyle.Format = "#,#";
dataGridView1.Columns[4].DefaultCellStyle.Format = "#,#";
dataGridView1.Columns[5].DefaultCellStyle.Format = "#,#";

但这不起作用:(

我想要列3,4,5像这样111,555

1 个答案:

答案 0 :(得分:0)

您仅使用名称和标题文本向DataGridView添加了一些未绑定的列。在这种情况下,该列没有ValueType,因此格式化不会适用于它的值。因此,您应为那些未绑定的列设置ValueType

要显示显示千位分隔符的数字格式和小数点后的某些数字(例如2位数),您可以使用N2格式。

this.dataGridView1.Columns.Add(new DataGridViewTextBoxColumn()
{
    ValueType = typeof(decimal),
    Name = "Column1",
    HeaderText = "Column One"
});
this.dataGridView1.Columns["Column1"].DefaultCellStyle.Format = "N2";

这样,该列显示的数据如下:12,345.67