C#控件閃爍的解決方法
本文實(shí)例講述了C#控件閃爍的解決方法。分享給大家供大家參考。具體分析如下:
如果你在Form中繪圖的話,不論是不是采用的雙緩存,都會(huì)看到圖片在更新的時(shí)候都會(huì)不斷地閃爍,解決方法就是在這個(gè)窗體的構(gòu)造函數(shù)中增加以下三行代碼:
請(qǐng)?jiān)跇?gòu)造函數(shù)里面底下加上如下幾行:
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 雙緩沖
參數(shù)說(shuō)明:
UserPaint
如果為 true,控件將自行繪制,而不是通過(guò)操作系統(tǒng)來(lái)繪制。此樣式僅適用于派生自 Control 的類(lèi)。
AllPaintingInWmPaint
如果為 true,控件將忽略 WM_ERASEBKGND 窗口消息以減少閃爍。僅當(dāng) UserPaint 位設(shè)置為 true 時(shí),才應(yīng)當(dāng)應(yīng)用該樣式。
DoubleBuffer
如果為 true,則繪制在緩沖區(qū)中進(jìn)行,完成后將結(jié)果輸出到屏幕上。雙重緩沖區(qū)可防止由控件重繪引起的閃爍。要完全啟用雙重緩沖,還必須將 UserPaint 和 AllPaintingInWmPaint 樣式位設(shè)置為 true。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
adonet基礎(chǔ)示例分享(adonet連接數(shù)據(jù)庫(kù))
這篇文章主要介紹了adonet基礎(chǔ)示例分享(adonet連接數(shù)據(jù)庫(kù)),需要的朋友可以參考下2014-04-04C#簡(jiǎn)單實(shí)現(xiàn)IOC容器的示例代碼
IoC 的原理是通過(guò)將對(duì)象的創(chuàng)建和依賴(lài)關(guān)系的管理交給外部容器來(lái)實(shí)現(xiàn),從而降低了代碼的耦合度,提高了代碼的可維護(hù)性和可測(cè)試性,下面我們就來(lái)看看如何通過(guò)C#實(shí)現(xiàn)一個(gè)IOC容器吧2024-02-02c#基于Redis實(shí)現(xiàn)輕量級(jí)消息組件的步驟
這篇文章主要介紹了c#基于Redis實(shí)現(xiàn)輕量級(jí)消息組件的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#進(jìn)行開(kāi)發(fā),感興趣的朋友可以了解下2021-05-05