2013-06-06 45 views
1

我設置了窗體的顏色漸變和代碼工作正常,但問題是當我重新大小然後發生巨大的閃爍。所以引導我如何在表單有漸變背景時使閃爍最小化。這裏是我的代碼謝謝。Win窗體漸變背景和調整大小c#

private void myform_Paint(object sender, PaintEventArgs e) 
     { 
      using (LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, 
                   Color.WhiteSmoke, 
                   Color.SteelBlue, 
                   90F)) 
      { 
       e.Graphics.FillRectangle(brush, this.ClientRectangle); 
      } 
     } 

     private void myform_Resize(object sender, EventArgs e) 
     { 
      this.Invalidate(); 
     } 
+0

嘗試設置DoubleBuffered財產 'http://msdn.microsoft.com/en-us/library/system.windows.forms.control.doublebuffered.aspx' – Blablablaster

回答

4

使用雙緩衝:

public myform() // Form constructor 
{ 
    InitializeComponent(); 
    DoubleBuffered = true; 
} 
+0

當我顯示具有漸變背景和窗體邊框樣式的窗體時,不會出現閃爍。我設置了DoubleBuffered = true;但仍然發生閃爍。你能指導我如何在邊界少的情況下阻止這種閃爍。謝謝 – Thomas

+0

1.使用帶有漸變的位圖作爲表單背景。 (或)2.放置一個自定義控件在窗體上繪製漸變,並將其對接屬性設置爲「填充」。 –