我正在为基于TextBox的DataGridView创建自定义编辑控件。这样可以正常工作,除了(尽管我可以覆盖OnValidating事件)设置e.Cancel为true不会阻止用户离开单元格。
当用户输入无效数据时,如何强制停留在编辑控件中?
这必须是可能的,因为当您在绑定列中输入无效数据时,您必须实现Dataerror事件,并且当数据无效时用户无法离开单元格。
答案 0 :(得分:1)
我通过覆盖EditingControl的OnValidating事件来解决它,以跳过base.OnValidating。在Grid的CellValidating中添加了代码,该代码调用底层编辑控件的自定义验证方法,在验证失败时设置e.Cancel = true。