.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);