标题:Winform绘制控件的问题
只看楼主
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
 问题点数:0 回复次数:8 
Winform绘制控件的问题
最近在做一个银行项目,编发SWIFT报文。
报文界面是根据数据库中不同报文类型的字段动态创建的,当生成一个复杂类型的报文界面的时候,系统响应会非常慢,绘制出整个form大概需要10秒。
经过单步测试,创建控件和控制位置排序消耗的时间都不多,三分之二的时间开销是花在界面的第一次绘制上。
简单描述一下,我把所有的控件都创建在一个Panel中,先让Panel的Visible为false, 创建和排序完成后再让它的Visible等于true。
就是visible=true这一行代码,会消耗6秒多的时间。
当第一次绘制完成后,如果再最大最小化窗体,几乎是不消耗时间的。

想问问有没有谁知道 有什么方法 可以比较快的绘制出这些控件?现在这么长的系统响应时间,客户是不接受的。
搜索更多相关主题的帖子: 控件 Winform 数据库 报文 绘制 
2007-11-16 16:18
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
我自己查了一下资料
双缓冲技术似乎也不能解决这个问题,因为响应慢不是由于重绘引起的,第一次绘制控件就这么慢,重绘反而没什么开销。
有过这方面经验的兄弟请指教啊,急~

2007-11-16 16:55
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 
双缓冲是应用在绘图上面的,不过你可以稍改进用在你所说的控件HIDE和SHOW上面。。不过第一次载入控件是慢的,后面就好了。

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-11-16 16:58
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
某些控件 比如button label picturebox 等等 也是带双缓冲优化属性的,但是容器类的控件(Panel, GroupBox ...)都不带这一特性。

我现在需要解决的就是第一次载入太慢的问题, 有没有什么方法可以绕过呢?

2007-11-16 17:05
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

自己顶上来


2007-11-17 17:30
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
没人回答啊。。。顶一下

2007-11-20 08:50
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
饶过啊??第一次都是比较慢的

飘过~~
2007-11-20 09:36
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
你也可以把界面的东东简化,这样第一次绘图时就不会太慢了.

foreach( in ){ }
2007-11-21 10:38
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
得分:0 
像这种情况一般情况我都是增加一个loading……来解决。C#是解释型语言,所以第一次确实是有点慢的。必竟是第一次嘛……

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2007-11-21 12:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-186523-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.845309 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved