怎么让绘图时候Invalidate屏幕不要出现闪烁?

zyca 2007-09-03 08:39:31
我的程序中有一个功能,是让鼠标拖拽一些物体,这样在MouseMove事件中就得不停Invalidate一块区域,会出现闪烁现象,怎么才能避免这个现象?
...全文
212 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyca 2007-09-03
  • 打赏
  • 举报
回复
搞定了,原来要自己创建一个MyPanel类继承Panel,用这个来绘图.
public class MyPanel : System.Windows.Forms.Panel
{
public MyPanel()
{
this.SetStyle(System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(System.Windows.Forms.ControlStyles.DoubleBuffer, true);
this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true);
this.SetStyle(System.Windows.Forms.ControlStyles.ResizeRedraw, true);
}
}
zyca 2007-09-03
  • 打赏
  • 举报
回复
加了以后还是闪...我是在Form里的一个Panel上绘图的
sadever 2007-09-03
  • 打赏
  • 举报
回复
VS2005的话,在Form的构造函数里加这个:this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧