本帖最后由 creater2009 于 2012-07-29 17:08:46 编辑

解决方案 »

  1.   

    你对paint事件有什么歧视吗把 this.panel1.Refresh(); 去掉就可以了但是下次刷新 还是会消失正确的做法就是 重载paint事件
      

  2.   

    1楼说的对的
    把你的代码放到paint事件中去,不要再refresh了        private void panel1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = this.panel1.CreateGraphics();
                Color FColor = Color.Blue;
                Color TColor = Color.Green;
                System.Drawing.Brush b = new LinearGradientBrush(this.panel1.ClientRectangle, FColor, TColor, LinearGradientMode.ForwardDiagonal);
                g.FillRectangle(b, this.panel1.ClientRectangle);
                // this.panel1.Refresh();
                g.Dispose();
            }
      

  3.   

    我用paint事件是可以实现,但是每次切换的时候都要重新paint,导致有点闪屏。
    看样子需要重写panel控件。