Verhindern, dass ein Steuerelement aus dem Container verschoben wird

Diese Frage hängt mit einer anderen Frage von mir zusammen, die hier zu finden istfinden Sie hier. Ich wollte umziehenPictureBox in seinem übergeordneten Container, der aTabPage (Wenn es einen Unterschied macht!) Mit dem folgenden Code kann die Bewegung ausgeführt werden:

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; 
} 

Jetzt ist mein Problem, es gibt keine Grenze für diese Verlagerung der Kontrolle. Der Benutzer kann die Steuerelemente kilometerweit vom sichtbaren Bereich der ziehenTabPage das ist meine bilderbox drin. Ich habe versucht, der Bewegung durch Ändern des Symbols einige Grenzen zu setzenMouseMove Ereignis wie dieses, um zumindest zu verhindern, dass es aus derLeft undRight sichtbarer Bereich der Registerkarte:

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)); 
  } 
} 

Das Problem mit dem obigen Code ist jedoch immer dann, wenn die Bildbox auf die rechte oder linke Seite des Containers und auf die trifftLeft oderRight gleich 0 bekommen, ich kann den Regler nicht mehr bewegen.

Irgendwelche Hilfen / Tipps, um zu erreichen, dass diese Bewegung innerhalb des Behälters eingeschränkt wird, zLeft, Right, Top and Bottom von der bilderbox wird geschätzt!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage