启用dataGridView的双缓冲即可解决,方法如下:
            Type type = dataGridView.GetType();
            PropertyInfo pi = type.GetProperty("DoubleBuffered",
                BindingFlags.Instance | BindingFlags.NonPublic);
            pi.SetValue(dataGridView, true, null);

转载自:Datagridview不可避免的会闪烁处理