C#winform使用双缓冲解决刷新闪屏的问题
最近在做一个winform项目,其中一个panel内的全部控件都是动态添加到页面中的,并且这些动态的控件需要做添加、删除等的功能,考虑到界面的美观,在每添加或删除时都要重新加载所有动态控件,但是,有一个问题就是清空控件再添加时页面会闪屏,这个问题很影响人机交互的效果,最后通过一个大佬了解到了“双缓冲”技术,在大佬给的示例中我稍微修改了一下,现在分享给大家:
1、首先我重写了panel控件,项目(右键)–>添加新项–>自定义控件
2、添加如下代码:
public partial class Mypanel : Panel{public Mypanel(){InitializeComponent();//panel双缓冲this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);this.SetStyle(ControlStyles.UserPaint, true);}protected override void OnPaint(PaintEventArgs pe){base.OnPaint(pe);}}
3、在使用双缓冲的窗体Load事件中添加如下代码:
//窗体双缓冲
this.DoubleBuffered = true;
这样,重新加载Mypanel中控件时,就可以防止闪屏了!!!良心推荐
C#winform使用双缓冲解决刷新闪屏的问题相关推荐
- MFC基础知识(四)——双缓冲解决刷屏时闪烁
本文主要介绍:在利用MFC画图或图像显示时,有时候需要调用OnDraw()函数刷新屏幕,而屏幕往往会发生闪烁,本文主要介绍利用双缓冲解决闪屏问题. 关于闪屏方面的介绍分析见博文: http://blo ...
- java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...
28640发布于 今天 02:47 本篇文章目的 画出坦克的实心圆 让坦克圆动起来 双缓冲解决闪烁问题 一.画出代表坦克的实心圆 我们需要画出一个圆,那么可以使用fillOval方法 fillOval ...
- Delphi 使用双缓冲解决图片切换时的闪烁问题 good
Delphi 使用双缓冲解决图片切换时的闪烁问题 good 参考文章: (1)Delphi 使用双缓冲解决图片切换时的闪烁问题 good (2)https://www.cnblogs.com/find ...
- win10间歇性闪屏_今天解读win10桌面自动刷新闪屏的完全解决手法
今天又有网友来问小编win10桌面自动刷新闪屏的问题,这个问题之前都已经解答过了.win10桌面自动刷新闪屏这样的不常见的问题,还真把一些大神给弄懵了.那么这个win10桌面自动刷新闪屏问题该如何才能 ...
- win10桌面不停自动刷新闪屏解决方法
1.右键点击桌面上的此电脑,然后点击管理; 2.然后双击服务与应用程序,展开它; 3.再双击服务; 4.然后找到Problem Reports and Solutions Control Panel ...
- java游戏程序界面_Java解决游戏界面闪屏
一.问题描述 我们在做有关于图形绘制方面的问题非常之多.比如,有时我们用普通的方法去绘制图形,会产生闪屏的现象,导致我们所做的游戏或者是别的项目效果非常差,这完全不是我们想要的结果.那么,有没有一种技 ...
- 电脑一直刷新闪屏,也许不是Win11的锅。
前几天在用Internet Download Manager(一个可以添加到浏览器扩展插件的下载工具)下载一个文件时,出了点问题(当时没有想到截图,具体报错内容不记得了),然后过了段时间电脑突然开始刷 ...
- C语言编程闪屏,双缓冲解决VC++绘图时屏幕闪烁
通常来说程序根据需要调用Invalidate(FALSE)使窗口客户区无效引起重绘,然后在窗口OnPaint函数(基于文档视图的程序则是OnDraw)中进行稳定绘图就行了.但是,我们在OnPaint中 ...
- MFC双缓冲解决图象闪烁[转]
转载网上找到的一篇双缓冲的文章,很好用.http://www.cnblogs.com/piggger/archive/2009/05/02/1447917.html _________________ ...
最新文章
- Error in eval(predvars, data, env) : object ‘**‘ not found
- linux 文件删除恢复
- Paper Review: Bayesian Shrinkage towards Sharp Minimaxity
- 本地生活JAVA版本_赶集生活java版
- oracle中noguarantee,关于undo guarantee
- CSS中让一个div的高度随着另外个一个统计的div的高度变化而变化的代码
- PHP与Redis结合令牌桶算法进行实现限流
- JavaScript那些事儿(1):对比JavaScript和jQuery的Dom操作
- Redis的诞生历程
- python中swap的意思_Python为什么不需要swap(a,b)
- 老代码多=过度耦合=if else?阿里巴巴工程师这样捋直老代码
- Mysql 面试常问5 让你根据业务写出比较复杂的SQL,往往和 Group BY 与 Having 相关
- JS判断当前DOM树是否加载完毕
- 回头再说-006 时间音乐
- PHP composer
- odoo14调用akshare库报错:Fatal process out of memory: Failed to reserve memory for new V8 Isolate
- 技术牛人如何发财致富?
- 8.PPP拨号 获取ip地址
- 净重新分类指数NRI的计算
- 第四周:基于图像相似度比较的分镜头
热门文章
- PLC常见的输入设备及其接线方式列举
- Chrome 商店 Spam 插件套路分析
- JAVA计算机毕业设计理发店会员管理系统(附源码、数据库)
- 美发店管理软件有什么用
- 图片去水印神器-图片免费去水印app神器
- 短视频APP开发对影视行业有哪些影响?
- python2安装pyyaml_python – 使用pip /添加PyYaml作为pip依赖来安装pyyaml
- 测试小白必看:自动化测试入门基础知识
- 从零学python黑马程序员_Python实战编程--从零学Python/Python应用编程丛书
- 浙江省计算机二级打印准考证时间,浙江计算机二级考试准考证打印时间