我已将汽车的图像加载到图片框中。
private void btn_LoadPattern_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "JPEG Files|*.jpg";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = openFileDialog.FileName;
}
}
我想在此图像上绘制一个矩形,并在同一表格上添加箭头按钮,这样用户就可以移动矩形以指示图片在登记牌所在的位置。
问题在于,如果我开始绘制矩形,它将被汽车图片覆盖。另一个问题是当用户clieck向右/向左/向上/向下按钮移动时,如何在新位置重绘矩形。
Anyhelp将不胜感激。
答案 0 :(得分:2)
在这种情况下,我不会使用PictureLocation
,我会这样做:
pictureBox1.BackgroundImage = Image.FromFile(openFileDialog.FileName);
现在,如果你在PictureBox
中绘制一个矩形,它应该被绘制在汽车图像上。
其次,使用Paint
的{{1}}事件
这样的事情应该可以解决问题。
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()
事件重新绘制新位置的矩形。