Hello,
you should try to put a call to SuspendLayout and ResumeLayout in your code:
control.MouseMove += delegate(object sender, MouseEventArgs e)
{
if (Dragging)
{
this.SuspendLayout();
if (direction != Direction.Vertical)
container.Left = Math.Max(0, e.X + container.Left - DragStart.X);
if (direction != Direction.Horizontal)
container.Top = Math.Max(0, e.Y + container.Top - DragStart.Y);
this.ResumeLayout();
}
}