我现在在使用Microsoft Visual Studio 2005编写C#等托管程序时,遇到一个问题,我在好多地方发贴问了,至今没有找到答案,所以想到了您,希望大家能过帮助我,以下是我的问题,希望大家可以帮我找到答案。谢谢!

 

帖子内容:

请大家试下:建个新的C#程序,然后拖入100个Label控件,然后运行,会发现窗体出来后,Label控件会从一边刷着显示出来,估计有差不多1秒的时间(根据机器性能可能有所改善,但肯定会有),没有显示的地方可以看到事透明的。VC.NET建立托管程序也是如此。

 

不仅仅是显示的时候,最小化后,然后再还原,或者是拖动其他窗体从本窗体拖过,和打开的效果一个样子,刷屏。与集成显卡无关,在独立显卡依然一样。

 

开启双缓冲依然无效。

 

然而使用DELPHI或VC建立的MFC程序就不会出现这种情况。

 

这个问题事托管带来的弊病吗?那么在托管程序中可以解决这个问题吗?如何解决?请高手来指点下。

 

以下是位网友的答复:

出现的情况是因为:默认是一边创建一边显示,当控件多了时,性能会下降;这时最好等创建完后一起显示,要额外设置一个属性,以开启这种方式,这样和用DELPHI或VC建立的MFC程序在使用感觉上是一样的.

准确的说,应该是在绘制的同时又在显示,所以最小化然后再还原,windows会重新绘制显示,因为我很少在winform下写程序,一时也提供不出这方面的解决方法。但确实有这种设置,一般在好点的书(教程)里会讲到这个的,特别是使用GDI+创建UI,这种设置是基本动作。

 

请大家帮我找找解决方法。

Posted on 2006-07-29 10:07  李通通  阅读(306)  评论(1编辑  收藏  举报