Exemplo n.º 1
0
        //指定位置に制御点を追加
        private ControlPoint AddControlPoint(Point addLocation)
        {
            ControlPoint newControlPoint = new ControlPoint(addLocation.X, addLocation.Y, this);

            //リストの最後に制御点を追加
            controlPointList.Add(newControlPoint);

            //コンテキストメニューを設定
            newControlPoint.ContextMenuStrip = controlPointMenu;

            //制御点を画面に反映
            this.containerPanel.Controls.Add(newControlPoint);
            newControlPoint.BringToFront();
            newControlPoint.EnableCourseDraw = true;

            return(newControlPoint);
        }
Exemplo n.º 2
0
        //指定制御点の前後どちらかに制御点を挿入
        private ControlPoint InsertControlPoint(ControlPoint point, Insert position)
        {
            Debug.Assert(point != null);

            //挿入位置の制御点は配列の何番目か検索
            int index = controlPointList.IndexOf(point);

            Debug.Assert(index != -1);

            ControlPoint newControlPoint = null;

            //リストに制御点を挿入(前or後)
            switch (position)
            {
            case Insert.Before:
                //制御点を追加する座標を算出して作成(挿入元から30mm左上の位置にハードコード)
                newControlPoint = new ControlPoint(point.NativeX - 30, point.NativeY + 30, this);
                controlPointList.Insert(index, newControlPoint);
                break;

            case Insert.After:
                //制御点を追加する座標を算出して作成(挿入元から30mm右下の位置にハードコード)
                newControlPoint = new ControlPoint(point.NativeX + 30, point.NativeY - 30, this);
                controlPointList.Insert(index + 1, newControlPoint);
                break;

            default:
                Debug.Assert(false);
                break;
            }

            //コンテキストメニューを設定
            newControlPoint.ContextMenuStrip = controlPointMenu;

            //制御点を画面に反映
            this.containerPanel.Controls.Add(newControlPoint);
            newControlPoint.BringToFront();

            return(newControlPoint);
        }