重绘闪烁这个问题困扰我一个礼拜了。今天终于找到了解决办法。
首先在构造函数中添加以下语句
SetStyle(ControlStyles.ResizeRedraw | ControlStyles.Opaque, true);
在Paint事件函数中或者在OnPaint函数中new 一个Image在利用Graphics .FromImage(Image)得到一个新的Graphics 对象。
使用该对象在Image中绘制好后。在使用PaintEventArgs 中的Graphics的DrawImage(image)函数绘制到控件区域上即可。
但是,这种方法,在使用重写OnPaintBackground时,将ControlStyles.Opaque设置为true的话,会使OnPaintBackground无效。
本文详细介绍了解决控件重绘闪烁问题的方法,包括在构造函数中设置样式和在Paint事件函数中绘制图片,同时指出在使用重写OnPaintBackground时设置ControlStyles.Opaque会导致OnPaintBackground失效。

被折叠的 条评论
为什么被折叠?



