WinForm/C# GridControl 验证用户输入数据是否合法

xinggang · 2018年03月26日 · 97 次阅读

使用场景:

用户在 GridControl (WnGrid封装自GridControl)某单元格输入数据后焦点离开,这时我们有时会去验证用户输入的数据是否符合程序要求,如果不符合要求我们会弹出提示并设置回修改前的值。

我们的一般做法:

目前我们在WinForm开发中常用做法是注册 CellValueChanged 事件,在此事件里判断,如果不通过则再设置回原来的值。这时要不是先Commit、用 dr["xxx"]=oldValue 还是 SetCellValue,可能有些同学不是很清楚。

这里不说上面做法的好坏,只是提供另一种 Dev 已经为我们提供的现有方法:

20180326113237

下面是效果演示动画(点击查看大图)

20180326113249

扩展:

我们为了可以定制错误提示,可以注册 InvalidValueException 事件

如果能解释下代码原理就更好了,,使用找个委托什么时候发挥作用呢,在输入每一个值的时候都执行找个委托还是,输完呢

zenglanlan 回复

如果能解释下代码原理就更好了,,使用找个委托什么时候发挥作用呢,在输入每一个值的时候都执行找个委托还是,输完呢

这是注册事件的兰姆达写法,和注册 CellValueChanged 事件一样,只不过这个事件会在 CellValueChanged 之前触发。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册