再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事件。这里就不在详述了。 |
关于葡萄城
赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。
了解详情,请访问葡萄城官网。