Как нарисовать одну линию с помощью 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();
}
С уважением