我用双反冲,可是问题来了, 我在调整列宽的时候,不像自带的DataGridView那样,中间没有了黑虚线,一点不友好。要是表达不清楚的话,你复制代码,把这个控件拖到界面,在运行的情况下调列宽试试,很明显的。代码如下。 
namespace ControlsTest
{
    public class TestDataGridView : DataGridView
    {
        public TestDataGridView()
        {
          SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
        }        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            //执行代码
        }        protected override void OnCellPainting(DataGridViewCellPaintingEventArgs e)
        {
           
                base.OnCellPainting(e);
            //执行代码
        }
    }
}
希望高手指点一下,谢谢了。 如果去掉ControlStyles.OptimizedDoubleBuffer 就好了,可是我绘图,在调整窗体大小的时候会特别的闪,所以必须双反冲。