解决winform窗体闪烁问题

转载 2016年08月29日 16:44:37

原文地址:点击打开链接

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

C# WinForm页面切换导致闪烁的解决方法

问题描述在项目中因为不得不实现美工的界面要求,使用了大量的panel来隐藏控件的某些区域(对用户隐藏),在页面切换过程中会产生闪烁的问题,影响整体美观。虽不影响使用,但非常恼人,暂未解决。希望后期能找...
  • u012391923
  • u012391923
  • 2016年11月02日 14:55
  • 6112

解决Winform应用程序中窗体背景闪烁的问题

参考链接:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码。 这几天遇...
  • sl1990129
  • sl1990129
  • 2018年01月15日 21:49
  • 18

C#Winform频繁刷新导致界面闪烁解决方法

C#Winform频繁刷新导致界面闪烁解决方法 Posted on 2014-03-31 15:11 龙心纹 阅读(5183) 评论(0)  编辑 收藏 一、通过对窗体和控件使用...
  • weixin_40976261
  • weixin_40976261
  • 2017年11月13日 10:02
  • 590

C#界面闪烁问题解决方案

C#界面闪烁问题解决方案
  • hrx521
  • hrx521
  • 2016年05月13日 20:46
  • 1627

C# 解决窗体闪烁

最近从师兄手上接了一个C#的项目,需要用到MDI窗体,可是每当我显示子窗体的时候会有一次“闪烁”,很明显,看起来非常不爽,查找许久,知道是每次在show()子窗体的时候都会调用子窗体构造函数重绘窗体,...
  • itoccupant
  • itoccupant
  • 2014年06月19日 17:08
  • 1438

基于双缓冲技术解决视图刷新重绘闪烁问题

基于双缓冲技术解决视图刷新重绘闪烁问题 1.基本原理 普通视图绘制完成后直接在显示器窗口中显示,所以出现闪烁的现象。双缓冲技术,简单来说就是创建一块虚拟的内存区来存储画布,而显示器中只显示实际显示...
  • phnumber
  • phnumber
  • 2017年03月20日 16:00
  • 448

C# win32 api入门--自制窗口闪烁效果与模态窗体闪烁效果

自制模态窗口闪烁效果
  • u011360395
  • u011360395
  • 2015年11月06日 15:10
  • 473

C# 完美解决窗体切换闪屏问题

1, 将以下代码块加在父窗体中的任意位置: protected override CreateParams CreateParams { get { CreateParams cp = ...
  • wzk456
  • wzk456
  • 2015年10月21日 16:37
  • 2358

java 物体运动过程中闪烁问题浅谈

Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色。在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理。本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单...
  • HelloWorld10086
  • HelloWorld10086
  • 2014年11月01日 11:58
  • 1265

Java Swing 双缓冲技术解决图像闪烁问题

我们看电视时,看到的屏幕称为OSD层,也就是说,只有在OSD层上显示图像我们才能看到。现在,我需要创建一个虚拟的、看不见但是可以在上面画图(比如说画点、线)的OSD层,我称之为offscreen(后台...
  • wxm349810930
  • wxm349810930
  • 2015年03月17日 09:57
  • 3996
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决winform窗体闪烁问题
举报原因:
原因补充:

(最多只允许输入30个字)