CellLeave焦点离开事件不支持Cancel
Spread等的焦点离开事件都是支持Cancel的,奇怪为什么MultiRow的不支持。需求:在CellLeave中判断,当某些条件下,取消Cell的leave动作,使得焦点保留。
正常情况下,这种事件在事件参数中应该是支持Cancel的!!! 做过以下尝试:
(1)在CellLeave中重定位活动单元格到离开前的位置,不可行。会陷入CellLeave死循环。
(2)在NewCellPositionNeeded中,通过事件参数的NewCellPosition属性设置移动的位置为移动前的单元格,OK。但是通过CurrentCellPosition移动单元格时,该事件无法响应。NewCellPositionNeeded只能响应鼠标和键盘的移动操作。不太完美。 我查了以下CellLeave后面接着执行CellValidating事件,该事件是支持Cancel的,而且我在CellValidating事件中将事件参数的Cancel属性设置为true,焦点的确保持住了,没有发生移动。
从效果上来看没有问题,这样的话,我把CellLeave里面的处理挪到CellValidating中应该就可以了。
斑竹,你觉得这样可以吗?有好方法不? 恭喜你发现了CellValidating,这个事件就是解决当Cell即将离开的时候,需要验证一些正确性,可以让Cell保持焦点不走。 回复 4楼wedy.wang的帖子
OK,了解了!
就这么干。 回复 5楼yinzhm的帖子
自我解决问题,赞一个。
这个结贴了,如果有新问题欢迎发新帖提问。
页:
[1]