그려진 그래픽 항목을 옮기려고합니다. 그러나 그것을 옮기려고 할 때 원래의 것 위에 또 다른 항목을 그립니다. Invalidate 및 pictureBox1.Invalidate를 시도했습니다. 여전히 행운은 그냥 두 항목을 pictureBox에 인쇄합니다. 제안 해 주셔서 감사합니다.C# 문제를 무효화하십시오.
private void button1_Click(object sender, EventArgs e)
{
count++;
button1.Text = "Move";
if (count == 1)
{
car();
}
else if (count == 2)
{
car1();
}
}
public void car()
{
Invalidate();
g = pictureBox1.CreateGraphics();
g.DrawEllipse(pen1, 50, 125, 30, 30);
g.DrawEllipse(pen1, 150, 125, 30, 30);
g.DrawRectangle(pen2, 45, 75, 140, 50);
g.DrawLine(pen2, 65, 75, 80, 35);
g.DrawLine(pen2, 80, 35, 140, 35);
g.DrawLine(pen2, 140, 35, 160, 75);
// Create string to draw.
String drawString = "Price: "+(cost).ToString("C");
// Create font and brush.
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
// Create point for upper-left corner of drawing.
PointF drawPoint = new PointF(50, 95);
// Draw string to screen.
g.DrawString(drawString, drawFont, drawBrush, drawPoint);
}
public void car1()
{
Invalidate();
g = pictureBox1.CreateGraphics();
g.DrawEllipse(pen1, 50 + m, 125, 30 , 30);
g.DrawEllipse(pen1, 150 + m, 125, 30 , 30);
g.DrawRectangle(pen2, 45 + m, 75, 140, 50);
g.DrawLine(pen2, 65 + m, 75, 80 + m, 35);
g.DrawLine(pen2, 80 + m, 35, 140 + m, 35);
g.DrawLine(pen2, 140 + m, 35, 160 + m, 75);
// Create string to draw.
String drawString = "Price: " + (cost).ToString("C");
// Create font and brush.
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
// Create point for upper-left corner of drawing.
PointF drawPoint = new PointF(50 + m, 95);
// Draw string to screen.
g.DrawString(drawString, drawFont, drawBrush, drawPoint);
}
질문을 근본적으로 다른 것으로 변경했기 때문에 질문을 원래 상태로 되돌 렸습니다. "새로운"질문이 있으시면 언제든지 새로운 질문을하고이 게시물을 참조하여 배경 정보를 얻을 수 있습니다. – LarsTech