求教求教!
  各位仁兄 我用C#做的窗体 给窗体设置了背景图片  然后用循环连续创建了很多按钮 我在启动程序是为什么 按钮出现的很慢啊!就是不是一起出现的!很慢!有什么解决办法么!

解决方案 »

  1.   


    Application.DoEvents(); 
    使用splash fprm
      

  2.   

    SetStyle(ControlStyles.DoubleBuffer,true);    //设置双缓冲,防止图像抖动      
    SetStyle(ControlStyles.AllPaintingInWmPaint,true);    //忽略系统消息,防止图像闪烁
      

  3.   


    这样能改善一点效果!            this.DoubleBuffered = true;//用双缓冲绘制控件的图面,以减少或避免闪烁。            for (int i = 0; i < 1000; i++)
                {
                    Button btn = new Button();
                    btn.Width = 80;
                    btn.Height = 25;
                    btn.Left = (i % 5) * 80;
                    btn.Top = (i / 5) * 25;
                    btn.Text = "Button" + i;
                    this.Controls.Add(btn);
                    //Application.DoEvents();//一个一个显示
                }
    这样子试试,一起出来的,不过循环时间太长会导致界面假死
      

  4.   

    放到窗体构造函数里InitializeComponent();语句的后面!
      

  5.   

    试试重载OnPaintBackground方法,应该是不断调用绘制背景图片导致的。
      

  6.   

    goga21cn  说的方法可以改善,但是还是解决不了本质!zhukui这位大哥说的重载OnPaintBackground
    应该怎么实现呢!具体应该怎么办呢!能说清楚点么!谢谢!
      

  7.   

    你不要一次全部显示,new button的visible设为false,添加完全部控件后一次设回来
    方法投机,而且我没试过
      

  8.   


    看你怎么使用,若是在窗体显示前就已经获得了需要绘制的控件信息,可以放到构造方法里去!
    这种问题目前还么找到一个完美的解决方案!最终还是要靠API