From 从窗口到全屏切换时 总闪烁好几次
有什么简单的解决办法没

解决方案 »

  1.   

    this.SuspendLayout();                             //临时挂起控件的布局逻辑  
      .....  
    this.ResumeLayout(false);                     //恢复  
       
    最大化时
    this.SuspendLayout();
    this.WindowState = FormWindowState.Maximized;
    this.ResumeLayout(false); 
      

  2.   

    你这个 我知道 我就研究了好久 如果我猜的不错的话楼主一定是在窗体上有个的背景
    你只要把背景去掉 套上一个picturebox然后再把图片加上 然后再放上控件 然后你再最大化就不会闪了 
    试下吧。 
      

  3.   

    1.双缓存重绘...因为绘图是需要时间的,你在内存中画一边,再将画好的显示出来,这样画的过程就不会呈现在用户界面上
            protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
            {
                    var bitmap = new Bitmap(300, 300, PixelFormat.Format16bppRgb555);    
                    var graphics = Graphics.FromImage(bitmap);
                    graphics.Clear(this.BackColor);
                    graphics.DrawImage(backBuffer, 0, 0);
                    e.Graphics.DrawImage(backBuffer, 0, 0);
            }2.如果用的是.net的话 在初始化时将DoubleBuffer设为true CLR会帮你摆平
            public Form1()
            {
                InitializeComponent();
                this.DoubleBuffered = true;
            }
      

  4.   

    this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
      

  5.   

    我也遇到过这种问题,对窗口截图。我需要将窗口上的picturebox中图片旋转90度,再调整窗口大小来使用picturebox的大小,截图似乎是绘图太慢的原因吗?只能截取空白的窗口,其上面的picturebox中的图片是无法截取下来的!!我的程序是:旋转图片90度,再调整窗口大小来适应picturebox的大小,最后直接截图。我采取的方法:在截图之前加入一个Messagebox.Show("........");  这样就可以在截图之前为绘图争取点时间,这样就最后可以截图到图片了。(但是这个方法是有后遗症的,那就是回弹出个Messagebox窗口)