.NET 4.x Отображение линии при перетягивании - C#
Формулировка задачи:
Рисую на панели, но возникла проблема, когда тяну линию ее не видно, если убрать Invalidate() , то видны все варианты, пока я не отпустил мышь.
Как сделать так чтоб линию все таки было видно при задании?
Point ptBeg; Point ptEnd; Point? ptStartPoint = null; protected override void OnMouseDown(MouseEventArgs e) { if (CWindow.bPolygonFlag == true) if(e.Button == MouseButtons.Left) { ptBeg = new Point(e.X, e.Y); bBlocking = true; if (ptStartPoint == null) ptStartPoint = ptBeg; } } protected override void OnMouseMove(MouseEventArgs e) { if (CWindow.bPolygonFlag == true) if(bBlocking) if (e.Button == MouseButtons.Left) { Graphics grfx = CreateGraphics(); ptEnd = new Point(e.X, e.Y); Pen pen = new Pen(ForeColor); grfx.DrawLine(pen, ptBeg.X, ptBeg.Y, ptEnd.X, ptEnd.Y); grfx.Dispose(); Invalidate(); if (ptEnd == ptStartPoint.Value) ptStartPoint = null; } }
Решение задачи: «.NET 4.x Отображение линии при перетягивании»
textual
Листинг программы
Line l1 = new Line(10, 10, 100, 100); Line l2 = new Line(256, 128, 64, 32); GrObjectController gCt = new GrObjectController(this); gCt.AddGrObject(l1); gCt.AddGrObject(l2);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д