yinzhm 发表于 2014-7-1 20:07:00

CellValidating事件的一点疑问

好!
DenpyoMan升级到MultiRow
(1)MultiRow的CellLeave事件不支持Cancel,因此我使用CellValidating事件处理。但是有一点疑问,我在CellValidating事件中将Cancel设置为true,使焦点不发生移动。但是仍然会触发该Cell的CellEnter获得焦点事件,既然焦点都没有移动为什么还要触发这个事件呢。是有什么其他考虑吗?   
PS:不知道其他表格控件是否也是这样,但是DenpyoMan不是这样。
(2)MultiRow先触发CellLeave事件,再触发CellEndEdit事件,而IsCurrentCellInEditMode是在CellXXXEdit事件中变更的,因此在CellLeave事件中取得IsCurrentCellInEditMode是无意义的,因为它一定是true。测试是这样。
PS:DenpyoMan的事件触发顺序是相反的。

这两种控件诸如此类的却别真的很多,升级纠结啊。
我看葡萄城也推荐DenpyoMan升级到MultiRow,有没有升级的帮助文档或Demo之类的东东,以供参照……

dafo 发表于 2014-7-2 14:04:00

非常抱歉,DenpyoMan是一个很老的基于ActiveX技术的产品,GcMultiRow是为了.NET平台下打造的全兴产品,虽然两个产品在产品概念上有一些相似,但是从技术层面和平台来看都有很多的细节的变化,以及一些功能设计的变化,所以GcMultiRow是一个全新的产品,并且GcMultiRow所有的事件触发时机基本和微软.NET平台控件保持一致(例如DataGridView)。
所以你如果是旧项目升级改造,一些业务逻辑可能任然需要修改。我们没有详细和细节的两个产品升级的帮助文档,非常抱歉。

dafo 发表于 2014-7-2 14:25:00

关于你的1,2问题,我们的策略和微软标准.NET控件(DataGridView)策略保持一致,请参考标准策略。
问题2:如果单元格不进入编辑状态,这是选择其他单元格,CellLeave事件中取得IsCurrentCellInEditMode是false.

yinzhm 发表于 2014-7-2 17:32:00

回复 3楼dafo的帖子

好的,了解了!

Alice 发表于 2014-7-2 18:14:00

回复 4楼yinzhm的帖子

有问题欢迎开新帖交流。
页: [1]
查看完整版本: CellValidating事件的一点疑问