Если это возможно, я могу отправить сюда весь проект.
Вот мой код:< /p>
Код: Выделить всё
private void drawing_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && active_drawing && !active_zoom)
{
switch (DrawIndex)
{
case 1: // Line
if (ClickNum == 1)
{
firstPoint = currentPosition;
ClickNum++;
}
else if (ClickNum == 2)
{
entities.Add(new Line(firstPoint, currentPosition));
CancelAll(); // Çizim bittikten sonra sıfırla
}
break;
case 2: // Polyline
firstPoint = currentPosition;
tempPolyline.Vertexes.Add(new LwPolylineVertex(firstPoint.ToVector2));
ClickNum = 2; // Polyline devam edecek
break;
case 51: // Circle (merkez - yarıçap)
if (ClickNum == 1)
{
firstPoint = currentPosition;
ClickNum++;
}
else if (ClickNum == 2)
{
double radius = firstPoint.DistanceFrom(currentPosition);
entities.Add(new Circle(firstPoint, radius));
CancelAll(); // Çember çizim bittikten sonra sıfırla
}
break;
}
}
drawing.Refresh();
}
private void CancelAll(int index = 1)
{
DrawIndex = -1;
active_drawing = false;
active_selection = true;
ActiveCursor(0, 0);
ClickNum = 1;
firstPoint = new Vector3();
LwPolyLineCloseStatus(index);
tempEllipse.Clear();
DeSelectAll();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -always-re