找回密码
 立即注册

QQ登录

只需一步,快速开始

yty

注册会员

14

主题

28

帖子

128

积分

注册会员

积分
128
yty
注册会员   /  发表于:2017-9-2 10:51  /   查看:2987  /  回复:1
我想在一些触发比较频繁的事件中(例如Changed事件),编码控制一些编辑动作,但TextControl控件的对象模型与UI视图层绑定的非常严密,用代码编程对象时,UI层会无条件地立即反映更改结果,导致如果算法稍微复杂一些(例如更改当前插入点,获取当前插入点的链接对象,然后把插入点更改回原位置),UI展示出来的效果就是频繁的跳动(例如只要赋值一次插入点,视图上插入点会立即变化),遍历对象进行处理时,情况更为严重。这样一是产生了界面“鬼畜”一般跳动的不好的视觉效果,二是极大影响了性能。例如使用贵司C1FlexGrid控件循环插入新行,是否禁用重绘所耗用的时间有天壤之别。在内存中处理数据应该是极快的,但每条语句都要触发文档图形层的重绘,甚至重新排版等复杂内部算法等,就太不妥了。一般来说,WinForm控件会支持Redraw属性或者BeginUpdate()/EndUpdate()方法对,暂时禁用UI层的重绘,待内存对象模型操作全部完成后,一次性重绘展示视图变化结果。但TextControl找不到这个功能。请问我应该如何编码,以改善内存对象模型的批量操作对UI层强制重绘的影响?

1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-4 14:38:16
沙发
目前TextControl确实没有办法实现此功能,我们这边也没有过多更好的建议
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部