Evitando que se mueva un control fuera de su contenedor.

Esta pregunta está relacionada con otra pregunta mía que se puede encontrar aquí.se puede encontrar aquí. Queria mover unPictureBox dentro de su contenedor padre que es unaTabPage (¡Si hace alguna diferencia!) El uso del código debajo del movimiento se puede hacer:

private Point start = Point.Empty; 
private bool _mapPackageIsMoving;    

void pictureBoxPackageView_MouseUp(object sender, MouseEventArgs e) { 
  _mapPackageIsMoving = false; 
} 

void pictureBoxPackageView_MouseMove(object sender, MouseEventArgs e) { 
  if (_mapPackageIsMoving) { 
    pictureBoxPackageView.Location = new Point( 
                             pictureBoxPackageView.Left + (e.X - start.X),  
                             pictureBoxPackageView.Top + (e.Y - start.Y)); 
  } 
} 

void pictureBoxPackageView_MouseDown(object sender, MouseEventArgs e) { 
  start = e.Location; 
  _mapPackageIsMoving = true; 
} 

Ahora mi problema es que no hay límite para este movimiento de control. El usuario puede arrastrar los controles a kilómetros del área visible de laTabPage que mi picturebox está dentro de ella. Intenté agregar algunos límites para el movimiento cambiando laMouseMove evento como este, al menos para evitar que salga de laLeft yRight área visible de la pestaña:

void pictureBoxPackageView_MouseMove(object sender, MouseEventArgs e) { 
  if (_mapPackageIsMoving) { 
   //Added condition
  if (pictureBoxPackageView.Left >= 0 && pictureBoxPackageView.Right >= 0)
    pictureBoxPackageView.Location = new Point( 
                             pictureBoxPackageView.Left + (e.X - start.X),  
                             pictureBoxPackageView.Top + (e.Y - start.Y)); 
  } 
} 

Pero el problema con el código de arriba es cuando la caja de imágenes toca el lado derecho o izquierdo del contenedor y laLeft oRight igual a 0, ya no puedo mover el control.

Cualquier ayuda / consejos para lograr limitar este movimiento dentro del contenedor paraLeft, Right, Top and Bottom de la caja de la imagen será appriciated!

Respuestas a la pregunta(2)

Su respuesta a la pregunta