Как нарисовать одну линию с помощью MouseMove Event

Я пытаюсь нарисовать одну линию, используяOnMouseMove() событие. Моя проблема в том, что каждый раз, когда я двигаю мышь, она оставляет след. Я пытался использовать метод обновления, но когда я прекращаю двигать мышь, линия исчезает. Я не хочу, чтобы линия была нарисованаOnPaint();, Просто хочу нарисоватьOnMouseMove().

РЕДАКТИРОВАТЬ: Я использую прозрачную панель (cp.ExStyle | = 0x20;), поэтому я не могу использоватьgraphics.Clear() а такжеBackColor()

Вот пример изображения безRefresh():

Вот мой код:

private void panel1_MouseMove(object sender, MouseEventArgs e)
{  
   Graphics g = panel1.CreateGraphics();

   g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   using (var p = new Pen(Color.Black, 3))
   {
      p.StartCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
      p.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

      g.DrawLine(p, st, e.Location);
   }
   Thread.Sleep(30);
   Invalidate();
   //this.Refresh();

   g.Dispose();
}

С уважением

Ответы на вопрос(5)

Ваш ответ на вопрос