找回密码
 立即注册

QQ登录

只需一步,快速开始

yinzhm

初级会员

32

主题

129

帖子

339

积分

初级会员

积分
339

活字格认证微信认证勋章

yinzhm
初级会员   /  发表于:2014-6-7 14:29  /   查看:7894  /  回复:5
Spread等的焦点离开事件都是支持Cancel的,奇怪为什么MultiRow的不支持。
需求:在CellLeave中判断,当某些条件下,取消Cell的leave动作,使得焦点保留。

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

5 个回复

倒序浏览
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
5#
回复 4楼wedy.wang的帖子

OK,了解了!

就这么干。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-7-1 18:24:00
6#
回复 5楼yinzhm的帖子

自我解决问题,赞一个。
这个结贴了,如果有新问题欢迎发新帖提问。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部