この質問は、ここで見つけることができる私の別の質問に関連しています。PictureBox
親コンテナ内でa を移動したかったTabPage
(違いがある場合)。以下のコードを使用して、移動を行うことができます。
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;
}
今私の問題は、この制御の移動に制限がないことです。TabPage
ユーザーは、自分のピクチャボックスがその中にある可視領域から数キロ離れたところにコントロールをドラッグできます。このようにイベントを変更して、少なくともタブページの表示領域MouseMove
から出ないようにするために、移動にいくつかの制限を追加しようとしました。Left
Right
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));
}
}
しかし、上記のコードの問題は、ピクチャボックスがコンテナの右側または左側に当たり、または が 0 になるたびにLeft
、Right
コントロールを移動できなくなることです。
画像ボックスのコンテナ内でこの動きを制限するためのヘルプ/ヒントがあれば、Left, Right, Top and Bottom
感謝します!