マウスを使用してpictureBoxを移動したいので、ここまで取得しました:
private void pictureB_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(image, recLoc);
}
private void pictureB_MouseDown(object sender, MouseEventArgs e)
{
WorkAble = true;
choosingPoint.X = e.X;
choosingPoint.Y = e.Y;
lastPoint.X = e.X;
lastPoint.Y = e.Y;
}
private void pictureB_MouseMove(object sender, MouseEventArgs e)
{
if (WorkAble)
{
recLoc.X = e.X - choosingPoint.X;// + lastPoint.X;
recLoc.Y = e.Y - choosingPoint.Y;// + lastPoint.Y;
pictureB.Refresh();
}
}
private void pictureB_MouseUp(object sender, MouseEventArgs e)
{
WorkAble = false;
lastPoint.X = e.X;
lastPoint.Y = e.Y;
}
// recLoc = pictureBox Location.
まあ、それはうまく機能します..しかし、完全ではありません..つまり、KeyUpイベントが実行され、もう一度クリックすると、画像はpictureBoxの0、0ポイントに戻ります。それを克服するために、lastPoint ポイントを追加し、マウスの移動でその値を追加しました。したがって、一方では最後にドロップしたポイントに画像を描画しますが、マウスは画像の0、0ポイントにあり、クリックした場所ではありません-画像上。画像の中心をクリックすると、マウスは 0, 0 ポイントになります..
それを修正する方法はありますか?