1. 程式人生 > >Winform中為視窗設定雙緩衝

Winform中為視窗設定雙緩衝

雙緩衝為了解決控制元件重新整理時,閃爍的問題。

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

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。