private void AddNodeButton_Click(object sender, EventArgs e)
        {
            layersPaintedControl.state_PainterForm_MouseDown = LayersPaintedControl.State_PainterForm_MouseDown.Other;
            IPosition currentPoint = new Position_Connected_Edit(0, 0);
            PositionSetEdit_ImplementByICollectionTemplate positionSetEdit_ImplementByICollectionTemplate = new PositionSetEdit_ImplementByICollectionTemplate();

            positionSetEdit_ImplementByICollectionTemplate.AddPosition(currentPoint);
            Layer_PositionSet_Point layer = new Layer_PositionSet_Point(positionSetEdit_ImplementByICollectionTemplate);

            MouseMovedRealPosition = delegate(IPosition position)
            {
                positionSetEdit_ImplementByICollectionTemplate.RemovePosition(currentPoint);
                currentPoint = position;
                positionSetEdit_ImplementByICollectionTemplate.AddPosition(currentPoint);
                layer.SpringLayerRepresentationChangedEvent(layer);
                layersPaintedControl.Invalidate();
            };

            layer.VisibleInOptDlg                = false;
            layer.Active                         = true;
            layer.Name                           = "Edited Figure";
            layer.Point.IsDrawPointBorder        = true;
            layer.Point.PointColor               = Color.Red;
            layer.Point.PointRadius              = 3;
            layer.PointCoordinate.CoordinateFont = new Font(layer.PointCoordinate.CoordinateFont, FontStyle.Bold);
            layer.PointCoordinate.Visible        = true;

            if (currentLayer != null)
            {
                layers.Remove(currentLayer);
            }
            currentLayer = layer;
            layers.Add(layer);

            MouseLBottonCheckRealPosition = delegate(IPosition position)
            {
                //((IPositionSetEdit)selectedPositionSetEdit).AddPosition(position);
                if (selectedPositionSetEdit is IPositionSet_ConnectedEdit && position is IPosition_Connected)
                {
                    ((IPositionSet_ConnectedEdit)selectedPositionSetEdit).AddPosition_Connected((IPosition_Connected)position);
                }
                else
                if (selectedPositionSetEdit is IPositionSetEdit)
                {
                    ((IPositionSetEdit)selectedPositionSetEdit).AddPosition(position);
                }
                else
                {
                    throw new Exception(error_position);
                }

                selectedPositionSetLayer.SpringLayerRepresentationChangedEvent(selectedPositionSetLayer);
                if (m2m_NN.CanInsert(position))
                {
                    m2m_NN.Insert(position);
                }
                else
                {
                    m2m_NN.PreProcess(selectedPositionSetEdit);
                    selectedPositionSetLayer.SpringLayerMaxRectChangedEvent();
                }
                layersPaintedControl.Invalidate();
            };
        }