C# 当PictureBox location属性更改时,仍会显示旧图像
我在另一个C# 当PictureBox location属性更改时,仍会显示旧图像,c#,winforms,C#,Winforms,我在另一个pictureBox中有一个pictureBox。我试着在地图上模拟飞机飞行。我做了一个简单的循环来完成这个任务。守则: for (var i = 0; i < 23; i++) { Fuel -= 1; Changed(i); } private void Changed(int a) { Thread.Sleep(350);
pictureBox
中有一个pictureBox
。我试着在地图上模拟飞机飞行。我做了一个简单的循环来完成这个任务。守则:
for (var i = 0; i < 23; i++)
{
Fuel -= 1;
Changed(i);
}
private void Changed(int a)
{
Thread.Sleep(350);
pbPlane1.Location = new Point(525-(25*a), 235);
pbPlane1.Refresh();
}
for(变量i=0;i<23;i++)
{
燃料-=1;
更改(i);
}
私有无效已更改(int a)
{
睡眠(350);
pbPlane1.位置=新点(525-(25*a),235);
pbPlane1.Refresh();
}
因此,在这种情况下,平面图像按我所希望的方式移动,但旧图像也会显示出来,我不希望这样。我试过几次,但都没有结果。我的代码有什么问题?您需要刷新地图图像,而不是刷新平面图像。 代码应如下所示:
private void Changed(int a)
{
Thread.Sleep(350);
pbPlane1.Location = new Point(525-(25*a), 235);
pbMap1.Refresh(); // refresh the background picturebox
}
您的代码不清楚您是如何更新图像的。您可以使用类似的方法清除picturebox<代码>图形图形=Graphics.fromimage(pictbox.Image);graphic.Clear(Color.Red)//Color填充背景并重置框最好在位图上使用
Graphics.fromImage
方法绘制平面图像,然后使用picturebox显示位图。我会做类似的事情,而不是在图片盒中放一个图片盒。如果在添加新图片盒之前清除图片盒会怎么样?@JustDoIt我不是真的添加新图片,我只是想更改它的位置。如果我这样做了,我就看不到我的飞机了我找到了一个简单的答案,谢谢你们的帮助好吧,我误解了你们的问题