Winform有中文的时候,第一次界面加载缓慢,求解~

Da侠饶命 2011-02-18 02:14:30
Winform程序

程序大致是这样的,TabControl有一些page代表不同的区域(例如 A区,B区,C区) 切换区域的时候,需要根据区域刷新出对应的桌台(例如一区的桌台有 A001,A002...),桌台是用Devexpress控件的CardView做的,就是类似一张张的卡片,卡片最上面显示桌台名称.

现在有一个问题就是,不包含中文桌台的区域刷新速度一直都很快(A001,A002,A003...)

如果某页的CardView标题包含中文,比如桌台名称为[ C区001 C区002 C区003...]在程序启动后第一次切换到这一页时界面刷新明显变慢,在这之后再次切换页面就很快了.

是不是.Net在界面画中文字符的时候,第一次需要缓存一下?

能不能手动缓存,或者用别的办法加快第一次刷新中文的速度?
...全文
327 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
peenyking 2011-02-22
  • 打赏
  • 举报
回复
第一次听说, 我out了。
关注ing。。。。
yalan 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wenjie11533 的回复:]
this.DoubleBuffered = true; // 设置双缓冲
AddRange+SuspendLayout+ResumeLayout //这个不知道什么意思
[/Quote]

这两个都没用的,双缓冲不是解决这个问题的。

我刚才做了一个四个tabpage的窗体,1英文2中文3英文4中文,加载速度基本一样,大概相差0.2毫秒。
你看看你程序的逻辑是否有问题?
如果逻辑相同仅仅一个英文一个中文的问题,你看看你设置的字体是否有问题?如果系统没找到你设置的字体可能会使用其他字体,这可能会消耗点时间

而且C#程序初次加载慢是很正常的,CLR机制决定的,C#程序写好后编译成中间语言,然后由CLR解释执行。

这个问题真没遇到过,希望你能贴些代码来让大家看看
WenJie11533 2011-02-22
  • 打赏
  • 举报
回复
this.DoubleBuffered = true; // 设置双缓冲
AddRange+SuspendLayout+ResumeLayout //这个不知道什么意思
szjay 2011-02-22
  • 打赏
  • 举报
回复
呵呵,是和中文有关系的。
楼主一定是使用了非默认字体,或者非默认字体大小。
这是DevExpress的问题,如果界面上控件少,是察觉不出来的,控件多了,你就能感觉速度迟滞很明显。
楼主换回控件的默认字体之后,速度就提高了。
chinawes 2011-02-22
  • 打赏
  • 举报
回复
应该和中文 英文没什么关系吧,你每个Tab页初始化的时候是否加载写什么东西(比如从数据库里面查询数据并显示),而且快慢和加载数据的多少也有关。
LBreathy 2011-02-22
  • 打赏
  • 举报
回复
第一次听说有中文加载很慢,关注ing
小case 2011-02-22
  • 打赏
  • 举报
回复
Devexpress控件的CardView 的问题吧

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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