1
我有以下单元格格用户编辑后Datagrid单元格格式不保留?
datagrid.rows[0].cells[0].Value =1;
datagrid.rows[0].cells[0].Style.Format ="#k";
数据网格此工作正常,并输出将是1K,然而当用户编辑的单元格的值例如为2则单元格的格式将不会生效?
问题是如何在用户编辑后保留单元格格式?
谢谢
我有以下单元格格用户编辑后Datagrid单元格格式不保留?
datagrid.rows[0].cells[0].Value =1;
datagrid.rows[0].cells[0].Style.Format ="#k";
数据网格此工作正常,并输出将是1K,然而当用户编辑的单元格的值例如为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";
*/
}
}
}
非常感谢! – CliffC
你们是不是要设置样式为独特的细胞(在[0,0 ])还是整列? – manji
现在为了简单起见,为了单元[0,0],我知道你可以使用datagrid.Columns [0] .DefaultCellStyle.Format =“”;设置整个列的样式格式。 – CliffC