找回密码
 立即注册

QQ登录

只需一步,快速开始

MultiRow

注册会员

1

主题

9

帖子

42

积分

注册会员

积分
42

活字格认证

最新发帖
MultiRow
注册会员   /  发表于:2011-1-27 12:50  /   查看:9545  /  回复:1
再MRWin中,主要有以下几个条件会影响到CurrentCell变化时的事件顺序。

1. 变化是由数据源的Current变化引起的,而不是MultiRow引起的。
2. CurrentCell移出了当前行
3. 当前Cell正处于编辑状态
4. 当前Cell处于编辑状态并且当前值已经变化但没有提交到数据源。
5. EditMode设置为EditOnEnter

下面是整个过程中的主要事件及触发顺序和条件:

1. NewCellPositionNeeded (只有条件1不满足时触发)
2. CellLeave
3. RowLeave (只有条件2满足时触发)
4. CellValidating (只有条件1不满足时触发)
5. CellValueChanged (只有条件1不满足,条件4满足时触发。因为,如果是数据源的变化引起的变化,当前编辑的值会被丢弃。)
6. CellValidated (只有条件1不满足时触发)
7. RowValidating (只有条件1不满足,且条件2满足时触发)
8. RowValidated (只有条件1不满足,且条件2满足时触发)
9. EndEdit (当条件3满足时触发)
10. RowEnter (只有条件2满足时触发)
11. CurrentCellChanged
12. CellEnter
13. SelectionChanged
14. BeginEdit (当条件5满足时触发)
15. EditingControlShowing (当条件5满足时触发)

以上仅仅是主要的和Navigation, Selection, Editing, Validation相关的事件,在这个过程中还会触发多次CellFormatting事件,CellPainting事件和CellValueNeeded事件(如果你开启了VirtualMode),如果值发生变化(条件4满足),会触发CellParsing和CellValuePushed事件。这里就不在详述了。

1 个回复

倒序浏览
yangli953
禁止发言   /  发表于:2011-3-12 04:42:00
沙发
路过支持下!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部