yinzhm 发表于 2014-6-7 14:29:00

CellLeave焦点离开事件不支持Cancel

Spread等的焦点离开事件都是支持Cancel的,奇怪为什么MultiRow的不支持。
需求:在CellLeave中判断,当某些条件下,取消Cell的leave动作,使得焦点保留。

正常情况下,这种事件在事件参数中应该是支持Cancel的!!!

yinzhm 发表于 2014-6-7 14:33:00

做过以下尝试:
(1)在CellLeave中重定位活动单元格到离开前的位置,不可行。会陷入CellLeave死循环。
(2)在NewCellPositionNeeded中,通过事件参数的NewCellPosition属性设置移动的位置为移动前的单元格,OK。但是通过CurrentCellPosition移动单元格时,该事件无法响应。NewCellPositionNeeded只能响应鼠标和键盘的移动操作。不太完美。

yinzhm 发表于 2014-6-7 15:43:00

我查了以下CellLeave后面接着执行CellValidating事件,该事件是支持Cancel的,而且我在CellValidating事件中将事件参数的Cancel属性设置为true,焦点的确保持住了,没有发生移动。

从效果上来看没有问题,这样的话,我把CellLeave里面的处理挪到CellValidating中应该就可以了。

斑竹,你觉得这样可以吗?有好方法不?

wedy.wang 发表于 2014-6-7 16:11:00

恭喜你发现了CellValidating,这个事件就是解决当Cell即将离开的时候,需要验证一些正确性,可以让Cell保持焦点不走。

yinzhm 发表于 2014-6-7 17:46:00

回复 4楼wedy.wang的帖子

OK,了解了!

就这么干。

Alice 发表于 2014-7-1 18:24:00

回复 5楼yinzhm的帖子

自我解决问题,赞一个。
这个结贴了,如果有新问题欢迎发新帖提问。
页: [1]
查看完整版本: CellLeave焦点离开事件不支持Cancel