2011-06-22 75 views
1

我有以下单元格格用户编辑后Datagrid单元格格式不保留?

datagrid.rows[0].cells[0].Value =1; 
datagrid.rows[0].cells[0].Style.Format ="#k"; 

数据网格此工作正常,并输出将是1K,然而当用户编辑的单元格的值例如为2则单元格的格式将不会生效?

问题是如何在用户编辑后保留单元格格式?

谢谢

+0

你们是不是要设置样式为独特的细胞(在[0,0 ])还是整列? – manji

+0

现在为了简单起见,为了单元[0,0],我知道你可以使用datagrid.Columns [0] .DefaultCellStyle.Format =“”;设置整个列的样式格式。 – CliffC

回答

2

我猜你没有使用底层数据源。您正在将DataGridViewRows手动插入DataGridView

如果您使用的是数据源,如果列数据类型为数字,则样式可以在编辑模式和只读模式下工作。

在你的情况,你需要处理CellFormatting事件DataGridView并设置你的细胞存在的格式:

void dataGridView1_CellFormatting(object sender, 
            DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex == 0 && e.RowIndex == 0) 
    { 
     // if the underlying type is int 
     int value; 
     if(e.Value != null && int.TryParse(e.Value.ToString(), out value)) 
     { 
      e.Value = value.ToString("#k"); 

      /*** OR *** 

      e.Value = value; 
      e.CellStyle.Format = "#k"; 

      */ 
     } 
    } 
} 
+0

非常感谢! – CliffC

相关问题