社区
C#
帖子详情
panel面板重绘闪烁是怎么回事
sis_ying
2008-12-01 08:35:32
在做c# winform程序的时候做个个贪吃蛇游戏,但是在调用Invalidate()和Update()方法触发paint事件重绘的时候窗体会闪烁,这是怎么回事呢,能通过什么方法使得不闪烁呢
...全文
477
9
打赏
收藏
panel面板重绘闪烁是怎么回事
在做c# winform程序的时候做个个贪吃蛇游戏,但是在调用Invalidate()和Update()方法触发paint事件重绘的时候窗体会闪烁,这是怎么回事呢,能通过什么方法使得不闪烁呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiangqinggao
2011-02-15
打赏
举报
回复
楼主可解决了,这个我的也存在,而且很严重。
请求支援。
Sunferny
2008-12-03
打赏
举报
回复
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
surewy
2008-12-02
打赏
举报
回复
mark
jy251
2008-12-02
打赏
举报
回复
同意3楼的意见,但是.net 使用的 GDI+ 比起在VC中使用GDI来说,闪烁是大了点,我做过实验...
建议了双缓冲之后,一般的闪烁都不明显了,但是有的时候,你画的内容太多,或者图形太负责,也还是会有闪烁,这个地方是我认为GDI+ 做的反而不如GDI好的地方.
长沙三毛
2008-12-01
打赏
举报
回复
只绘制更新部分,Invalidate()函数可以带个Rectangle对象,这样闪动小点。
net5i
2008-12-01
打赏
举报
回复
搂主可以开启.NET 为我们实现的双缓冲:
添加到构造函数:
//开启双缓冲
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
这样设置后就没太大问题了,如果还剧烈闪动,那就是搂主的绘制方法的改进了
sis_ying
2008-12-01
打赏
举报
回复
[Quote=引用 1 楼 pp_shy 的回复:]
用双缓冲方法解决。
在内存中建立一个Bitmap对象,大小设置和你那个panel一样大。
把所有绘制操作首先呈现到内存缓冲区(也就是内存中的Bitmap中),而不是直接在panel上绘图。等所有绘制操作完成后,再把内存缓冲区(也就是Bitmap对象)直接绘制到panel上。
[/Quote]
具体代码如何实现呢
pp_shy
2008-12-01
打赏
举报
回复
用双缓冲方法解决。
在内存中建立一个Bitmap对象,大小设置和你那个panel一样大。
把所有绘制操作首先呈现到内存缓冲区(也就是内存中的Bitmap中),而不是直接在panel上绘图。等所有绘制操作完成后,再把内存缓冲区(也就是Bitmap对象)直接绘制到panel上。
C#编程经验技巧宝典
C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适的Visual Studio 2005...
在winform如何避免绘图时图片总是
闪烁
其实很简单,自定义一个类让该类继承自
Panel
类,设置相关的值即可,代码如下: /// <... /// 游戏
面板
用于
重绘
时不
闪烁
/// </summary> class Game
Panel
:
Panel
{ public Game
Panel
() { S...
EasyUI应用(项目实战)
jquery入门基础,jquery赋值取值,事件处理和绑定,提交数据,datagrid控件显示数据,分页,事件处理;...tree创建树形菜单,部门列表等,
panel
控件的使用;progressbar进度条的应用;dialog控件的使用;
Java中使用paint()方法绘制图片时,解决图片
闪烁
问题
Java中使用paint()方法绘制图片时,解决图片
闪烁
问题
winform自定义控件---U
Panel
圆角
面板
winform自定义控件---U
Panel
圆角
面板
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章