利用winform开发时,可能都会遇到一个问题,就是在panel中不停的重绘图形时,图形会不停的闪烁。要解决这个办法只需要开启双缓冲即可,由于初学c#,理解的不是很深,所以不多做解释。以下代码亲测可以解决这个问题:
首先创建一个自己的panel类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test
{
//开启双缓冲
class MyPanel:Panel
{
public MyPanel()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true);
}
}
}
然后重新生成解决方法,就会发现工具箱中多了一个自己写的panel控件,在画图形的时候,画在自己的panel上就可以了。由于自己的panel继承自Panel类,所以Panel中的方法都可以使用。