В этом случае я бы не использовал PictureLocation
, я бы сделал это вместо:
pictureBox1.BackgroundImage = Image.FromFile(openFileDialog.FileName);
Теперь, если вы нарисуете прямоугольник в PictureBox
, он должен нарисоваться поверх изображения машины.
Во-вторых, используйте Paint
событие PictureBox
.
Нечто подобное должно сработать.
Rectangle MyRectangle;
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Create a local version of the graphics object for the PictureBox.
Graphics g = e.Graphics;
g.DrawRectangle(Pens.Black, MyRectangle);
}
И вы должны иметь возможность обрабатывать нажатия клавиш для изменения MyRectangle
в соответствии с клавишами со стрелками, а затем вызвать pictureBox1.Invalidate()
, чтобы событие Paint
перерисовало прямоугольник в новом месте.