Ok, so the only way I've managed to smooth out the flickering with drawing to this panel I have is by capturing the invalidate event and the paint event, with both just calling the same function. This, unfortunately, leads to a stack overflow, but the animation is smoother.