1. 程式人生 > >解決winform窗體閃爍問題

解決winform窗體閃爍問題

如果你在Form中繪圖的話,不論是不是採用的雙快取,都會看到圖片在更新的時候都會不斷地閃爍,解決方法就是在這個窗體的建構函式中增加以下三行程式碼:

請在建構函式裡面底下加上如下幾行:

SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 雙緩衝

引數說明:
UserPaint 
如果為 true,控制元件將自行繪製,而不是通過作業系統來繪製。此樣式僅適用於派生自 Control 的類。

AllPaintingInWmPaint 
如果為 true,控制元件將忽略 WM_ERASEBKGND 視窗訊息以減少閃爍。僅當 UserPaint 位設定為 true 時,才應當應用該樣式。  

DoubleBuffer 
如果為 true,則繪製在緩衝區中進行,完成後將結果輸出到螢幕上。雙重緩衝區可防止由控制元件重繪引起的閃爍。要完全啟用雙重緩衝,還必須將 UserPaint 和 AllPaintingInWmPaint 樣式位設定為 true。