gvRecord.MoveBy(1); 向前移动焦点行
Move系列有很多比如Next,First。官方有相关介绍。
gvRecord.RefreshData();更新画面数据。
那么,一开始,我认为,当控件数据源刷新后,再继续MoveBy,这样处理。毕竟刷新数据源之前MoveBy,可能数据刷新后会被覆盖嘛。
但是会报错,比如:当前功能(对象)正在被使用,正在占用。
检查了代码,在触发RefreshData()之后,会处理gvRecord_RowStyle 一类的绘制事件。
此时如果MoveBy的话,很大几率会导致程序报错。因为控件对象被占用的情况下无法进行MoveBy。
于是尝试将Moveby放在RefreshData之前,经过测试,程序可以实现自动向下滚动,并且不影响刷新数据。
可能我的需求比较特殊,大部分的帖子都是利用定时器控件定时滚动。
对于10行以下的情况,或者处理器性能好的机器上,此问题可能不会暴露。
至于我的需求,以及我对焦点行的纠结在另一篇帖子上。