我想格式化VB.NET datagridview
单元格以显示千位分隔符,其中包含2个小数位
123,456,789.12
我已经尝试了什么
DefaultCellStyle.Format = "N2"
DefaultCellStyle.Format = "#,###.##"
没有任何效果它继续显示123456789.12
注意:我从数据库填写datagridview
,我需要动态更改单元格格式
答案 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(字符串)