C#雙緩沖實現(xiàn)方法(可防止閃屏)
本文實例講述了C#雙緩沖實現(xiàn)方法。分享給大家供大家參考,具體如下:
// 該調(diào)用是 Windows.Forms 窗體設(shè)計器所必需的。 InitializeComponent(); // TODO: 在 InitComponent 調(diào)用后添加任何初始化 this.SetStyle(ControlStyles.AllPaintingInWmPaint,true); //開啟雙緩沖 this.SetStyle(ControlStyles.DoubleBuffer,true); this.SetStyle(ControlStyles.UserPaint,true); this.SetStyle(ControlStyles.ResizeRedraw,true);
1、在內(nèi)存中建立一塊“虛擬畫布”:
Bitmap bmp = new Bitmap(600, 600);
2、獲取這塊內(nèi)存畫布的Graphics引用:
Graphics g = Graphics.FromImage(bmp);
3、在這塊內(nèi)存畫布上繪圖:
g.FillEllipse(brush, i * 10, j * 10, 10, 10);
4、將內(nèi)存畫布畫到窗口中
this.CreateGraphics().DrawImage(bmp, 0, 0);
還有的方式
在構(gòu)造函數(shù)中加如下代碼
代碼一:
SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 雙緩沖
代碼二:
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true); this.UpdateStyles();
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#面向?qū)ο蟪绦蛟O(shè)計入門教程》、《C#常見控件用法教程》及《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》
希望本文所述對大家C#程序設(shè)計有所幫助。
相關(guān)文章
C#使用StringBuilder實現(xiàn)高效處理字符串
這篇文章主要為大家詳細介紹了C#如何使用StringBuilder實現(xiàn)高效處理字符串,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
C# winform 請求http的實現(xiàn)(get,post)
本文主要介紹了C# winform 請求http的實現(xiàn)(get,post),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
C# Lambda表達式及Lambda表達式樹的創(chuàng)建過程
這篇文章主要介紹了C# Lambda表達式及Lambda表達式樹的創(chuàng)建過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

