C#datagridview:Defaultcellstyle不起作用

时间:2016-02-25 10:49:56

标签: c# datagridview cell-formatting

我有关于Datagridview单元格格式的问题。我在下面添加我的示例代码,我尝试了许多百分比格式,但它不再工作了。问题出在哪里,你能帮助我吗?

private void button1_Click(object sender, EventArgs e)
{
        DataTable tb = new DataTable();
        DataRow row = tb.NewRow();
        tb.Rows.Add(row);
        tb.Columns.Add("Column1");
        tb.Rows[0][0] = "45";

        dataGridView1.DataSource = tb;
        dataGridView1.Columns[0].DefaultCellStyle.Format = "#.000\\%";
}

1 个答案:

答案 0 :(得分:0)

因为"0""#"说明符都是custom numeric format strings。由于您的"45"string,因此根本没有格式

作为解决方案,请将您的第一列值作为数字提供;

tb.Rows[0][0] = 45;

之后,将所有第一列值除以100.0 floating point division(例如,获得0.45),

foreach (DataRow row in tb.Rows)
{
   row[0] = (int)row[0] / 100.0;
}

并使用The "%" Custom Specifier将其格式化为;

dataGridView1.Columns[0].DefaultCellStyle.Format = "#%";

如果您的CurrentCulture 已经 %100,那么此%说明符会将您的值乘以%Console.WriteLine((0.45).ToString("#%")); // prints 45% 符号后面的值一个PercentSymbol

例如;

>= 3.5