我试图格式化DataGridView中2列的单元格,但是在UI上看不到格式。 这是我的代码:
gridView.Rows.Clear();
gridView.Columns.Clear();
List<DataGridViewColumn> rowList = new List<DataGridViewColumn>();
DataGridViewColumn col;
foreach (PropertyInfo info in typeof(T).GetProperties())
{
col = new DataGridViewTextBoxColumn();
col.Name = GetNameAttribute(info);
col.HeaderText = GetTextAttribute(info);
if (GetFieldTypeAttribute(info) == MyFieldTypes.MoneyField)
{
col.DefaultCellStyle = new DataGridViewCellStyle() { Format = "C2", Alignment = DataGridViewContentAlignment.MiddleRight };
col.ValueType = typeof(System.Double);
}
gridView.Columns.Add(col);
}
gridView.Refresh();
也许您可以帮我吗?
答案 0 :(得分:0)
只要执行col.DefaultCellStyle = new DataGridViewCellStyle() { Format = "C2", Alignment = DataGridViewContentAlignment.MiddleRight };
,您的代码就应该起作用。尝试按照建议进行调试。
答案 1 :(得分:0)
我找到了一个解决方案,也许它不是最好的,但是它可行。
当我在每行上添加DefaultCellStyle时,它会起作用:
while (dr.Read())
{
row = (DataGridViewRow)dgvGridView.Rows[0].Clone();
row.Cells[dgvGridView.Columns["Key"].Index].Value = dr.GetValue(0).ToString();
row.Cells[dgvGridView.Columns["Amount"].Index].Value = dr.GetValue(8).ToString();
// This Line works...
row.Cells[dgvGridView.Columns["Amount"].Index].Style = new DataGridViewCellStyle() { Format = "C2", Alignment = DataGridViewContentAlignment.MiddleRight };
dgvGridView.Rows.Add(row);
}
dgvGridView.Refresh();