Datagridview Cell Format千位分隔符

时间:2016-11-06 14:30:41

标签: vb.net datagridview formatting

我想格式化VB.NET datagridview单元格以显示千位分隔符,其中包含2个小数位 123,456,789.12 我已经尝试了什么

DefaultCellStyle.Format = "N2"
DefaultCellStyle.Format = "#,###.##"

没有任何效果它继续显示123456789.12

注意:我从数据库填写datagridview,我需要动态更改单元格格式

1 个答案:

答案 0 :(得分:0)

如果您的列类型是数字类型(例如double),则无论是否处于编辑模式,格式化都可以完成工作。 如果你的列类型是字符串类型,默认情况下,你应该处理cellFormating事件,以便在c#中执行如下所示的技巧:

  private void DgvCellStyle_Load(object sender, EventArgs e)

    {

        DataTable dt = new DataTable();

        dt.Columns.Add("a");

        dt.Rows.Add(155.6565);

        dt.Rows.Add(2342.2);

        this.dataGridView1.DataSource = dt;



        this.dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);

    }



    void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)

    {

        if (e.ColumnIndex == 0 && e.RowIndex != this.dataGridView1.NewRowIndex)

        {

            double d = double.Parse(e.Value.ToString());

            e.Value = d.ToString("N2");

        }

    } 

这对我有用,因为我从数据库中检索数据,似乎datagridview将其视为nvarchar(字符串)

您可以查看https://social.msdn.microsoft.com/Forums/windows/en-US/95e7e7ef-2e71-412f-abe5-ffbee2c12c18/how-to-format-datagridview-columns-to-numeric-columndefaultcellstyleformat-does-not-work?forum=winformsdatacontrols