我正在使用DataGridView文本列。该列绑定到DataTable中的十进制列。
如果我编辑单元格以获得一个空值然后标签,我会得到一个关于解析小数的问题的例外。
我理解为什么会发生这种情况并解决它我只想强制该值为“0.00”但我似乎无法让它工作。
我尝试了以下但是没有用:
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == amountIdx)
{
if (e.FormattedValue == "")
dataGridView1[e.ColumnIndex, e.RowIndex].Value = "0.00";
}
}
我可以设置e.Cancel = true而不是设置值,但只是将它保留在编辑模式中,这不是我真正想要的。
答案 0 :(得分:0)
变化:
if (e.FormattedValue == "")
dataGridView1[e.ColumnIndex, e.RowIndex].Value = "0.00";
为:
if (e.FormattedValue == "")
dataGridView1[e.ColumnIndex, e.RowIndex].Value = "0.00m";
答案 1 :(得分:0)
我明白了。在CellValidating触发后,该值似乎已重置。我不必更新实际的基础值,而是将EditingControl设置回" 0.00"。 CellValidating完成后,新值将保存到数据源。