A: 

Try setting the .ResizeRedraw property of your control to true in the constructor, see if that helps.

From MSDN:

Gets or sets a value indicating whether the control redraws itself when resized.

Andy
I have DoubleBuffered and ResizeRedraw both set to true, to no avail.
greggorob64
A: 

Try clearing the graphics with the grids backgroun in OnPaint

Graphics g = e.Graphics;

g.Clear(this.BackColor);

Nice try, but no dice:(. However, you did get me on a new train of thinking. The problem is the datagridview *I think* is that the datagridview client area thinks it is at an incorrect location.
greggorob64
+1  A: 

It sounds to me like your control isn't rendering its layout properly.
Did you suspend layout at some point in your code, and then never resumelayout?

Doing so will allow your control to function properly, but not lay out all of its components properly.

espais
I'll be damned, that did it. My UpdateData loop called suspendlayout in the beginning of the loop, and had a couple conditionals where it would exit the loop, and never call resumelayout. With SuspendLayout bieng stackable, it broke the layout issue fast. Putting ResumeLayout in a finally() block at the end of my update loop fixed it!
greggorob64
Awesome...I went out on a limb and guessed on that one. Glad I could be of help.
espais