用GDI+画图时不断重绘时总是会一闪一闪,网上找资料说用双缓冲可以减少闪烁,后来找了,发现在窗体上画就可以减少闪烁了,但如果是在控件上画还是会闪烁?这是为什么,求大神指点:
部分代码如下:
//先在缓冲中画好控件,再刷新 SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); //得到图片的矩形图形位置 Point[] points = { ptRect[0], ptRect[1], ptRect[3] }; Bitmap bitp = new Bitmap(size.Width, size.Height); Graphics g = Graphics.FromImage(bitp); g.DrawImage(bip,points); graphics.DrawImage(bitp,points); bitp.Dispose(); g.Dispose();