[MSHFlexGrid闪烁问题!!!]请教~~!!!

Gutta 2006-08-24 09:14:51
现在我的MSHFlexGrid控件列数比较多,有20列左右

需要在一秒种内将数据库中的内容提取出来以后重新画这一行(20列)的数据

但是如果不用Redraw的话会出现系统的延时(也就是在执行这一段语句的时候花了比较长的时间,因为我这一行中有10列左右都要设置CellBackColor和CellForeColor还有CellFontBold属性)

用了Redraw发现,虽然没有那种延时的效果了,但是用户看起来这个网格在不停闪烁(原因是Redraw属性先False再完成各个列敷值以后设置为True时整个MSHFlexGrid都重画了)!!!
用户感觉更加不好。。。

我现在可以确定的是每一行的Rect,能不能用Windows API来进行重画部分区域呢??
从而实现既可以快速显示每行数据又能不让用户感觉很闪烁的效果呢???

请教了~~~~
就这个问题怎么也搞不顶了。。
...全文
228 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gutta 2006-08-25
  • 打赏
  • 举报
回复
如果换个表格控件,哪个比较好??

而且免费的。。。嘿嘿
Gutta 2006-08-25
  • 打赏
  • 举报
回复
FlexItem是MSHFlexGrid的控件名称??

要是的话,那就比较郁闷了
Gutta 2006-08-25
  • 打赏
  • 举报
回复
还有这个属性??

我看看
hn123 2006-08-25
  • 打赏
  • 举报
回复
我看了代码,我们最后也是用 FlexItem.Redraw = False
实现的,你的闪烁的原因应该是,写一行就 FlexItem.Redraw = False 一次,你应该让记录全部都写完再FlexItem.Redraw = true.

如果还不行,把代码贴上来。

-------------
www.vicmiao.com
努力就有美好时光!
Gutta 2006-08-25
  • 打赏
  • 举报
回复
FlexGrid控件是免费的?

各位,再给些主义啦~~

难道用MSHFlexGrid控件就没有办法实现吗?
zerg2001 2006-08-25
  • 打赏
  • 举报
回复
汗死。目前在用同一家公司出的FlexGrid7.

百行以内调用.CellForeColor和.CellBackColor进行列个性化设置。没有出现问题。
hn123 2006-08-24
  • 打赏
  • 举报
回复
明天早上我一去公司 就帮你查一下.

--------------
www.vicmiao.com
努力就有美好时光!
Gutta 2006-08-24
  • 打赏
  • 举报
回复
把这个功能做好了,得放到Blog里去
Gutta 2006-08-24
  • 打赏
  • 举报
回复
谢谢!!!!

我的邮箱:fhh1044@hotmail.com 或 fhh1044@sina.com
hn123 2006-08-24
  • 打赏
  • 举报
回复
你的要求是可以实现的,我们目前的项目就是这样做的.
现在家里没代码,明天在公司帮你发.

思路:先用API把表格这块区域锁定,赋值 完成后再解锁,就能满足数据多也不会有闪的问题
(还有一种办法就是换一个表格控件,这些问题内部都解决了.)
----------------

www.vicmiao.com
努力就有美好时光!
Gutta 2006-08-24
  • 打赏
  • 举报
回复
每次只刷新一行

20列已经够多了。。。晕

请教如何用 API 来先让这一行不刷新,然后再敷值完成以后再用 API 进行刷新本行区域数据,可以这样么???

谢谢~~~~
zerg2001 2006-08-24
  • 打赏
  • 举报
回复
FlexGrid的Cell系列属性效率很低的。需要每个格进行定位,再更新显示。

和列数无关吧。20几列不算多。
应该是行数比较多。试着用分类来减少一次显示的行数。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧