У меня есть pictureBox1 с изображением внутри, и когда я нажимаю на него свои точки рисования. Теперь я добавил кнопку сброса, которую я назвал, когда я нажимаю на нее, она должна очистить все рисунки, которые я сделал на картинке, и оставить изображение внутри без рисунков на нем.Как сбросить/очистить все чертежи, которые я сделал на pictureBox1?
я сделал:
private void button4_Click(object sender, EventArgs e)
{
Graphics graphics;
graphics = pictureBox1.CreateGraphics();
graphics.DrawImage(pictureBox1.Image, 0, 0);
}
Так я рисовать много точек на pictureBox1 затем нажмите на кнопку, и все точки исчезли, а затем один раз я нажимаю на picturebox1 снова я вижу также новые точки, но и старые точки, которые я сделал до очистки.
Как я могу очистить старые чертежи, чтобы они не отображались на следующих кликах?
Это событие краски: Перемещенное событие краски к новому классу:
public static void Paint(List<PointF> pb1points, GraphicsPath pb1gp, Point movingPoint, PictureBox pictureBox1, Graphics e)
{
e.Clear(Color.White);
e.DrawImage(pictureBox1.Image, movingPoint);
Pen p;
p = new Pen(Brushes.Green);
foreach (PointF pt in pb1points)
{
e.FillEllipse(Brushes.Red, pt.X, pt.Y, 3f, 3f);
}
using (Pen pp = new Pen(Color.Green, 2f))
{
pp.StartCap = pp.EndCap = LineCap.Round;
pp.LineJoin = LineJoin.Round;
e.DrawPath(pp, pb1gp);
}
}
Вы никогда не должны опираться на 'CreateGraphics()'. Вместо этого вам нужно нарисовать все в событии Paint. – SLaks
'pictureBox1.Image = null;' – stuartd
Вы сохраняете точки в списке. Вы не хотите их больше, поэтому просто используйте метод Clear() списка. И вызовите метод «Недействительный() для фотошопа, чтобы заставить его перекрасить себя. –