屏幕闪烁问题处理 1.用二级缓存 gxBuffer = Graphics.FromImage(offBitmap); gxBuffer.Clear(Color.Navy); gxBuffer.DrawImage(background, new Rectangle(0,0, background.Width, background.Height), 0, 0, background.Width, background.Height, GraphicsUnit.Pixel, new ImageAttributes()); e.Graphics.DrawImage(offBitmap, 0, 0); 2.而且要重写OnPaintBackground方法 protected override void OnPaintBackground(PaintEventArgs e) { //base.OnPaintBackground(e); } 图片的透明处理 1.设置属性 ImageAttributes attrib = new ImageAttributes(); Color color = image.GetPixel(0, 0); attrib.SetColorKey(color, color); x.DrawImage(image, clientArea, 0, 0, clientArea.Width, clientArea.Height, GraphicsUnit.Pixel, attrib); 2.使用插件 AlphaImage c = AlphaImage.CreateFromFile(path + @"/Images/" + dr["norm"].ToString()); Bitmap temp = new Bitmap(path + @"/Images/" + dt.Rows[0]["norm"].ToString()); normsize.Width = temp.Width; normsize.Height = temp.Height; c.Draw(gxBuffer, new Rectangle(((iconover.Width - normsize.Width) / 2) + moveX + offx, this.Height - iconover.Height, normsize.Width, normsize.Height));