如果你在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。