我有datagridview1
。当用户编辑单元格值时,我想检查数据的验证。如果无效,则将单元格值回滚到旧值。
在CellValidating
事件中,我使用了:
e.Cancel = true;
但是值没有回滚 我怎么能这样做?
答案 0 :(得分:3)
设置e.Cancel = true
只是取消退出编辑,强制用户编辑当前单元格直到它有效。而是允许编辑发生,但将值重置为原始值。用以下内容替换您发布的代码行:
dataGridView1.EditingControl.Text = dataGridView1.CurrentCell.Value.ToString();
编辑:或者只需用以下代码行替换上面的内容。这样做的另一个好处是不会丢失数据类型,如果添加了NewRow
,则取消this.dataGridView1.CancelEdit();
的添加。
{{1}}