this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint , true);
我在form中加了这个,双缓冲窗体以减少闪烁
但好像效果 不很明显哦,还有啥好办法吗?

解决方案 »

  1.   

    做成控件数组放进去。试一试效果。 把所有往form里添加控件的方法全改成添加到数组。然后把数组放进form。
     Control[] ctlsLbl;
    Controls.AddRange(ctlsLbl); 
      

  2.   

    做成控件数组放进去。试一试效果。 把所有往form里添加控件的方法全改成添加到数组。然后把数组放进form。 
    Control[] ctlsLbl; 
    Controls.AddRange(ctlsLbl);////////////////////
    这个我尝试过了,好像也没多大变化,
    原理上该怎么解释,这样做显示速度会变快呢?
      

  3.   

    大家没人遇到过这样的问题吗?一般稍微复杂的管理软件估计
    一个form上都会有很多的控件吧,难道都没有显示方面的问题?
      

  4.   

    做一个超级父类FORM
    所有其它界面都是它的子类,继承它,好处:业务代码都在父类,子类只实现你需要的布局,控件一次性加载,实现多语言也方便,就像一个装饰
    坏处: 布局代码要手写
      

  5.   

    做一个spashForm,显示,主窗体加载完后再隐藏掉SpashForm
      

  6.   

    做一个spashForm,显示,主窗体加载完后再隐藏掉SpashForm
    ////
    这个方法我尝试过了,我的是发生在SpashForm后的,也就是
    form.Show()这一句话上面。
      

  7.   

    发现是用了netadvantage控件的改变风格AppStylistRuntime这个东西,
    所以很慢,去掉他的话,就很快了哦,
    难道这个AppStylistRuntime这个对程序有这么大的影响?
      

  8.   

    可以在启动一个事件或者form时 用委托处理 出来一个画面 说正在处理 请等待 
      

  9.   

    可以在启动一个事件或者form时 用委托处理 出来一个画面 说正在处理 请等待 
      

  10.   

    可以在启动一个事件或者form时 用委托处理 出来一个画面 说正在处理 请等待 
    ///
    这个解决不了问题,问题出现在
    form.show()的时候,如果用了netadvantage控件的改变风格AppStylistRuntime这个东西, 
    就会很慢,否则就正常。
      

  11.   

    难道是用传说中的suspendlayout和resumelayout解决?
    没实验过,猜测,呵呵。