Showing
8 changed files
with
154 additions
and
80 deletions
... | @@ -8,23 +8,34 @@ using System.Windows.Forms; | ... | @@ -8,23 +8,34 @@ using System.Windows.Forms; |
8 | 8 | ||
9 | namespace flowchart | 9 | namespace flowchart |
10 | { | 10 | { |
11 | + // 각종 선택 상황을 열거형으로 정의 | ||
12 | + public enum State | ||
13 | + { | ||
14 | + NONE, RECTANGLE, RHOMBUS, PARALLELOGRAM, LINKLINE, MOVE | ||
15 | + } | ||
16 | + | ||
17 | + | ||
11 | // flowchart를 그리는 판넬에 필요한 기능을 삽입. (Panel 객체를 상속해서 사용했음) | 18 | // flowchart를 그리는 판넬에 필요한 기능을 삽입. (Panel 객체를 상속해서 사용했음) |
12 | // 마우스 클릭을 놓으면 어떤 도형 또는 선을 선택했는지 판단해서, 해당 자료구조를 생성하고, 페인트 함수를 통해 그린다. | 19 | // 마우스 클릭을 놓으면 어떤 도형 또는 선을 선택했는지 판단해서, 해당 자료구조를 생성하고, 페인트 함수를 통해 그린다. |
13 | class CustomPanel : Panel | 20 | class CustomPanel : Panel |
14 | { | 21 | { |
15 | - private String _state; // NONE, DRAW, MOVE | 22 | + public static Control _parentControl = null; // 텍스트박스에서 부모로 정의하기 위한 변수 |
16 | - private String _figName; // NONE, RECTANGLE, RHOMBUS, LINKLINE, ETC | 23 | + |
17 | - | 24 | + public CustomPanel() // 생성자 |
25 | + { | ||
26 | + _parentControl = this; | ||
27 | + } | ||
28 | + | ||
29 | + private State _selectState = State.NONE; // 열거형을 사용하기 위한 변수 | ||
30 | + | ||
18 | private List<FigBase> _shapes = new List<FigBase>(); // 도형을 저장한 리스트 자료구조 | 31 | private List<FigBase> _shapes = new List<FigBase>(); // 도형을 저장한 리스트 자료구조 |
19 | private List<FigLinkline> _linkLines = new List<FigLinkline>(); // 링크 선을 저장한 리스트 자료구조 | 32 | private List<FigLinkline> _linkLines = new List<FigLinkline>(); // 링크 선을 저장한 리스트 자료구조 |
20 | 33 | ||
21 | private FigBase _linkStartShape = null; // 처음 선택한 도형을 저장하는 변수 | 34 | private FigBase _linkStartShape = null; // 처음 선택한 도형을 저장하는 변수 |
22 | private FigBase _movingShape = null; // 도형을 움직이겠다고 선택된 경우 해당 도형을 저장하는 변수 | 35 | private FigBase _movingShape = null; // 도형을 움직이겠다고 선택된 경우 해당 도형을 저장하는 변수 |
23 | - | ||
24 | 36 | ||
25 | - // private 변수를 클래스 밖에서 읽고 쓰게 하는 함수 | 37 | + // 외부 클래스에서 호출되는 변수(열거형 값) 정의 |
26 | - public string FigName { get { return _figName; } set { _figName = value; } } | 38 | + public State SelectState { get { return _selectState; } set { _selectState = value; } } |
27 | - public String State { get { return _state; } set { _state = value; } } | ||
28 | 39 | ||
29 | // 마우스를 판넬에서 움질일때 호출되는 이벤트 함수 | 40 | // 마우스를 판넬에서 움질일때 호출되는 이벤트 함수 |
30 | protected override void OnMouseMove(MouseEventArgs e) | 41 | protected override void OnMouseMove(MouseEventArgs e) |
... | @@ -38,33 +49,34 @@ namespace flowchart | ... | @@ -38,33 +49,34 @@ namespace flowchart |
38 | FigBase shape = FindShapeByLocation(e.Location); | 49 | FigBase shape = FindShapeByLocation(e.Location); |
39 | 50 | ||
40 | if (shape != null) | 51 | if (shape != null) |
41 | - Cursor = Cursors.SizeAll; // 도형 안에 마우스가 있을 경우 | 52 | + Cursor = Cursors.SizeAll; // 도형 안에 마우스가 있을 경우 마우스 모양 변경 |
42 | - else | 53 | + else |
43 | - Cursor = Cursors.Default; // 도형 밖에 마우스 포인터가 있을 경우 | 54 | + Cursor = Cursors.Default; // 도형 밖에 마우스 포인터가 있을 경우 마우스 모양 변경 |
44 | - | 55 | + // 도형 안에 마우스가 있고, 링크 라인을 그리겠다고 선택 |
45 | - if (shape != null && _figName == "LINKLINE") // 링크 라인을 그리겠다고 선택하고, 도형 안에 마우스가 있을 경우 | 56 | + if (shape != null && _selectState == State.LINKLINE) |
46 | Cursor = Cursors.Cross; | 57 | Cursor = Cursors.Cross; |
47 | 58 | ||
48 | } | 59 | } |
49 | // 마우스를 클릭한 상태에서 링크 라인을 그리지 않겠다고 선택된 경우 | 60 | // 마우스를 클릭한 상태에서 링크 라인을 그리지 않겠다고 선택된 경우 |
50 | - else if (e.Button == MouseButtons.Left && _figName != "LINKLINE") | 61 | + else if (e.Button == MouseButtons.Left && _selectState != State.LINKLINE) |
51 | { | 62 | { |
52 | - FigBase shape = FindShapeByLocation(e.Location); | 63 | + FigBase shape = FindShapeByLocation(e.Location); // 마우스가 어떤 도형안에 있는지 검색 |
53 | if (shape != null) | 64 | if (shape != null) |
54 | { | 65 | { |
55 | - _state = "MOVE"; // 움직이는 상태로 바꿈 | 66 | + _selectState = State.MOVE; // 움직이는 상태로 바꿈 |
56 | - _movingShape = shape; // 해당 도형을 레퍼런스 | 67 | + _movingShape = shape; // 해당 도형을 레퍼런스 |
57 | } | 68 | } |
58 | } | 69 | } |
59 | // 마우스를 클릭한 상태에서 링크 라인을 그리겠다고 선택한 경우 | 70 | // 마우스를 클릭한 상태에서 링크 라인을 그리겠다고 선택한 경우 |
60 | - else if (e.Button == MouseButtons.Left && _figName == "LINKLINE") | 71 | + else if (e.Button == MouseButtons.Left && _selectState == State.LINKLINE) |
61 | { | 72 | { |
62 | - if (_linkStartShape == null) // 처음 도형을 선택한것만 저장하기 위함. (다른 영역의 도형으로 넘어가도 실행안함) | 73 | + // 처음 도형을 선택한것만 저장하기 위함. (다른 영역의 도형으로 넘어가도 실행안함) |
74 | + if (_linkStartShape == null) | ||
63 | { | 75 | { |
64 | - _linkStartShape = FindShapeByLocation(e.Location); | 76 | + _linkStartShape = FindShapeByLocation(e.Location); // 마우스가 어떤 도형안에 있는지 검색 |
65 | if (_linkStartShape != null) | 77 | if (_linkStartShape != null) |
66 | { | 78 | { |
67 | - _state = "MOVE"; | 79 | + _selectState = State.LINKLINE; |
68 | } | 80 | } |
69 | } | 81 | } |
70 | } | 82 | } |
... | @@ -72,40 +84,33 @@ namespace flowchart | ... | @@ -72,40 +84,33 @@ namespace flowchart |
72 | base.OnMouseMove(e); | 84 | base.OnMouseMove(e); |
73 | } | 85 | } |
74 | 86 | ||
75 | - // 실제 도형을 그리거나 이동하는 함수, 최종 OnPaint() 함수가 호출되어 실행됨 | 87 | + // 실제 그릴 도형정보를 리스트 자료구조에 삽입하고, OnPaint() 함수를 호출 |
76 | protected override void OnMouseUp(MouseEventArgs e) | 88 | protected override void OnMouseUp(MouseEventArgs e) |
77 | { | 89 | { |
78 | - //System.Diagnostics.Trace.WriteLine("debug >>>" + _state); | 90 | + if (_selectState == State.RECTANGLE) // 사각형 그리기 선택 |
79 | - // 그리기 상태 | ||
80 | - if (_state == "DRAW") | ||
81 | { | 91 | { |
82 | - if (_figName == "RECTANGLE") | 92 | + // 사각형에 대한 정보를 자료구조에 삽입한다. |
83 | - { | 93 | + FigRectangle rectangle = new FigRectangle(e.Location, new System.Drawing.Size(100, 100)); |
84 | - // 사각형에 대한 정보를 자료구조에 삽입한다. | 94 | + _shapes.Add(rectangle); |
85 | - FigRectangle rectangle = new FigRectangle(e.Location, new System.Drawing.Size(100, 100)); | 95 | + } |
86 | - _shapes.Add(rectangle); | 96 | + else if (_selectState == State.RHOMBUS) // 마름모 그리기 선택 |
87 | - } | 97 | + { |
88 | - else if (_figName == "RHOMBUS") | 98 | + FigRhombus rhombus = new FigRhombus(e.Location, new System.Drawing.Size(100, 100)); |
89 | - { | 99 | + _shapes.Add(rhombus); |
90 | - FigRhombus rhombus = new FigRhombus(e.Location, new System.Drawing.Size(100, 100)); | 100 | + } |
91 | - _shapes.Add(rhombus); | 101 | + else if (_selectState == State.PARALLELOGRAM) // 평행사변형 그리기 선택 |
92 | - } | 102 | + { |
93 | - else if (_figName == "PARALLELOGRAM") | 103 | + FigParallelogram parallelogram = new FigParallelogram(e.Location, new System.Drawing.Size(100, 100)); |
94 | - { | 104 | + _shapes.Add(parallelogram); |
95 | - FigParallelogram parallelogram = new FigParallelogram(e.Location, new System.Drawing.Size(100, 100)); | ||
96 | - _shapes.Add(parallelogram); | ||
97 | - } | ||
98 | } | 105 | } |
99 | - // 움직이는 상태이고 링크 라인을 그리지 않는 경우 (단순 도형 이동) | 106 | + else if (_selectState == State.MOVE) // 도형을 움직이는 상태로 선택한 경우 |
100 | - else if (_state == "MOVE" && _figName != "LINKLINE") | ||
101 | { | 107 | { |
102 | if (_movingShape != null) | 108 | if (_movingShape != null) |
103 | { | 109 | { |
104 | - _movingShape.Location = e.Location; // 찾은 도형의 위치값을 옮길위치로 수정 | 110 | + _movingShape.Location = e.Location; // 자료구조에서 찾은 도형의 위치값을 옮길위치로 수정 |
105 | } | 111 | } |
106 | } | 112 | } |
107 | - // 움직이는 상태이고 링크 라인을 그리는 경우 (링크 라인을 긋는 경우) | 113 | + else if (_selectState == State.LINKLINE) // 선을 그리기로 선택한 경우 |
108 | - else if (_state == "MOVE" && _figName == "LINKLINE") | ||
109 | { | 114 | { |
110 | if (_linkStartShape != null) | 115 | if (_linkStartShape != null) |
111 | { | 116 | { |
... | @@ -126,10 +131,22 @@ namespace flowchart | ... | @@ -126,10 +131,22 @@ namespace flowchart |
126 | } | 131 | } |
127 | } | 132 | } |
128 | 133 | ||
129 | - _state = "NONE"; | 134 | + _selectState = State.NONE; |
130 | this.Refresh(); // 다시 그리기 요청: OnPaint() | 135 | this.Refresh(); // 다시 그리기 요청: OnPaint() |
131 | base.OnMouseUp(e); | 136 | base.OnMouseUp(e); |
132 | } | 137 | } |
138 | + | ||
139 | + // 도형 안에서 마우스를 더블클릭하면 텍스트 에디터를 삽입한다. | ||
140 | + protected override void OnMouseDoubleClick(MouseEventArgs e) | ||
141 | + { | ||
142 | + FigBase shape = FindShapeByLocation(e.Location); | ||
143 | + if (shape != null) | ||
144 | + { | ||
145 | + shape.EnterEditMode(); // FigBase에 함수 있음 | ||
146 | + } | ||
147 | + | ||
148 | + base.OnMouseDoubleClick(e); | ||
149 | + } | ||
133 | 150 | ||
134 | // 실제 그리는 OnPaint를 통해 내가 작성한 Draw함수를 호출한다. | 151 | // 실제 그리는 OnPaint를 통해 내가 작성한 Draw함수를 호출한다. |
135 | protected override void OnPaint(PaintEventArgs e) | 152 | protected override void OnPaint(PaintEventArgs e) |
... | @@ -147,7 +164,7 @@ namespace flowchart | ... | @@ -147,7 +164,7 @@ namespace flowchart |
147 | 164 | ||
148 | base.OnPaint(e); | 165 | base.OnPaint(e); |
149 | } | 166 | } |
150 | - // 현재 위치에 해당하는 도형을 자료구조에서 레퍼런스 함 | 167 | + // 현재 위치에 해당하는 도형을 자료구조에서 찾아서 레퍼런스 함 |
151 | private FigBase FindShapeByLocation(Point location) | 168 | private FigBase FindShapeByLocation(Point location) |
152 | { | 169 | { |
153 | foreach (FigBase s in _shapes) | 170 | foreach (FigBase s in _shapes) | ... | ... |
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Drawing; | 3 | using System.Drawing; |
4 | +using System.Drawing.Drawing2D; | ||
4 | using System.Linq; | 5 | using System.Linq; |
5 | using System.Text; | 6 | using System.Text; |
6 | using System.Threading.Tasks; | 7 | using System.Threading.Tasks; |
8 | +using System.Windows.Forms; | ||
7 | 9 | ||
8 | namespace flowchart | 10 | namespace flowchart |
9 | { | 11 | { |
10 | // flowchart 도형을 그리는 클래스의 공통(부모 클래스) | 12 | // flowchart 도형을 그리는 클래스의 공통(부모 클래스) |
11 | - // 변수: 위치(_location), 크기(_size). 링크선 위치(_linkPoints) | ||
12 | - // 함수: 그리기(Draw), 영역내에 있는지 확인(PointInRegion) | ||
13 | class FigBase | 13 | class FigBase |
14 | { | 14 | { |
15 | private Point _location; // 위치 변수 | 15 | private Point _location; // 위치 변수 |
16 | private Size _size; // 크기 변수 | 16 | private Size _size; // 크기 변수 |
17 | private Point[] _linkPoints = new Point[] { Point.Empty, Point.Empty, Point.Empty, Point.Empty }; // Top, Left, Bottom, Right | 17 | private Point[] _linkPoints = new Point[] { Point.Empty, Point.Empty, Point.Empty, Point.Empty }; // Top, Left, Bottom, Right |
18 | 18 | ||
19 | + // 텍스트 박스와 관련된 변수 | ||
20 | + private TextBox _textBox = null; | ||
21 | + private string _text; // 텍스트박스 글자 | ||
22 | + private Rectangle _textArea; // 위치계산 용 | ||
23 | + private bool _editMode = false; // 더블클릭여부 판단 | ||
24 | + | ||
19 | protected FigBase(Point location, Size size) // 생성자 (위치와 크기를 저장) | 25 | protected FigBase(Point location, Size size) // 생성자 (위치와 크기를 저장) |
20 | { | 26 | { |
21 | _location = location; | 27 | _location = location; |
22 | _size = size; | 28 | _size = size; |
23 | - CalculateLinkPoint(); | 29 | + CalculateLinkPoint(); // 선을 연결하기 위해 도형 주위의 4개의 위치값을 재계산 |
30 | + CalculateTextArea(); // 텍스트박스의 위치를 재계산 | ||
24 | } | 31 | } |
25 | 32 | ||
26 | // 내부 변수를 외부에서 접근하는 함수 | 33 | // 내부 변수를 외부에서 접근하는 함수 |
... | @@ -30,7 +37,8 @@ namespace flowchart | ... | @@ -30,7 +37,8 @@ namespace flowchart |
30 | set | 37 | set |
31 | { | 38 | { |
32 | _location = value; | 39 | _location = value; |
33 | - CalculateLinkPoint(); // 선을 연결하기 위해 도형 주위의 4개의 위치값을 재계산 | 40 | + CalculateLinkPoint(); |
41 | + CalculateTextArea(); | ||
34 | } | 42 | } |
35 | } | 43 | } |
36 | public Size Size | 44 | public Size Size |
... | @@ -39,7 +47,8 @@ namespace flowchart | ... | @@ -39,7 +47,8 @@ namespace flowchart |
39 | set | 47 | set |
40 | { | 48 | { |
41 | _size = value; | 49 | _size = value; |
42 | - CalculateLinkPoint(); // 선을 연결하기 위해 도형 주위의 4개의 위치값을 재계산 | 50 | + CalculateLinkPoint(); |
51 | + CalculateTextArea(); | ||
43 | } | 52 | } |
44 | } | 53 | } |
45 | public Point[] LinkPoints { get => _linkPoints; set => _linkPoints = value; } | 54 | public Point[] LinkPoints { get => _linkPoints; set => _linkPoints = value; } |
... | @@ -47,7 +56,15 @@ namespace flowchart | ... | @@ -47,7 +56,15 @@ namespace flowchart |
47 | // 자식 클래스에 필요한 공통 함수 | 56 | // 자식 클래스에 필요한 공통 함수 |
48 | public virtual void Draw(Graphics g) | 57 | public virtual void Draw(Graphics g) |
49 | { | 58 | { |
50 | - | 59 | + // 에디트 모드 경우만 글자를 삽입한다. |
60 | + if (!_editMode) | ||
61 | + { | ||
62 | + using (Font font = new Font("맑은 고딕", 16, FontStyle.Regular, GraphicsUnit.Pixel)) | ||
63 | + { | ||
64 | + PointF pointF1 = new PointF(_textArea.X, _textArea.Y); | ||
65 | + g.DrawString(_text, font, Brushes.Black, pointF1); | ||
66 | + } | ||
67 | + } | ||
51 | 68 | ||
52 | } | 69 | } |
53 | 70 | ||
... | @@ -66,5 +83,49 @@ namespace flowchart | ... | @@ -66,5 +83,49 @@ namespace flowchart |
66 | _linkPoints[2] = new Point(_location.X + (int)(((float)_size.Width) / 2), _location.Y + _size.Height); // Bottom | 83 | _linkPoints[2] = new Point(_location.X + (int)(((float)_size.Width) / 2), _location.Y + _size.Height); // Bottom |
67 | _linkPoints[3] = new Point(_location.X + _size.Width, _location.Y + (int)(((float)_size.Height) / 2)); // Right | 84 | _linkPoints[3] = new Point(_location.X + _size.Width, _location.Y + (int)(((float)_size.Height) / 2)); // Right |
68 | } | 85 | } |
86 | + // 텍스트 박스의 위치를 계산한다. | ||
87 | + private void CalculateTextArea() | ||
88 | + { | ||
89 | + _textArea = new Rectangle(_location, _size); | ||
90 | + _textArea.Inflate(-20, -20); | ||
91 | + } | ||
92 | + | ||
93 | + // 도형에서 마우스를 더블클릭하면 호출된다. | ||
94 | + public virtual void EnterEditMode() | ||
95 | + { | ||
96 | + if (!_editMode) | ||
97 | + { | ||
98 | + _editMode = true; | ||
99 | + if (_textBox == null) | ||
100 | + { | ||
101 | + _textBox = new TextBox(); | ||
102 | + _textBox.Font = new Font("맑은 고딕", 16, FontStyle.Regular, GraphicsUnit.Pixel); | ||
103 | + _textBox.Parent = CustomPanel._parentControl; // 판넬을 부모로 지정 | ||
104 | + _textBox.KeyDown += TextBox_KeyDown; // 키다운 이벤트를 호출한다. | ||
105 | + | ||
106 | + } | ||
107 | + else | ||
108 | + { | ||
109 | + _textBox.Show(); | ||
110 | + } | ||
111 | + | ||
112 | + _textBox.Location = _textArea.Location; | ||
113 | + _textBox.Size = _textArea.Size; | ||
114 | + | ||
115 | + } | ||
116 | + } | ||
117 | + // 에디트 모드를 종료한댜. | ||
118 | + private void TextBox_KeyDown(object sender, KeyEventArgs e) | ||
119 | + { | ||
120 | + if (e.KeyCode == Keys.Enter) | ||
121 | + { | ||
122 | + TextBox textBox = (TextBox)sender; | ||
123 | + _text = textBox.Text; | ||
124 | + textBox.Hide(); | ||
125 | + textBox.Clear(); | ||
126 | + _editMode = false; | ||
127 | + } | ||
128 | + } | ||
69 | } | 129 | } |
130 | + | ||
70 | } | 131 | } | ... | ... |
... | @@ -10,6 +10,8 @@ namespace flowchart | ... | @@ -10,6 +10,8 @@ namespace flowchart |
10 | { | 10 | { |
11 | class FigLinkline | 11 | class FigLinkline |
12 | { | 12 | { |
13 | + // 도형과 도형사이에 선을 연결하는 클래스 | ||
14 | + | ||
13 | private FigBase _startShape; // 링크 라인의 시작 위치 | 15 | private FigBase _startShape; // 링크 라인의 시작 위치 |
14 | private FigBase _endShape; // 링크 라인의 종료 위치 | 16 | private FigBase _endShape; // 링크 라인의 종료 위치 |
15 | 17 | ... | ... |
... | @@ -9,6 +9,9 @@ namespace flowchart | ... | @@ -9,6 +9,9 @@ namespace flowchart |
9 | { | 9 | { |
10 | class FigParallelogram : FigBase | 10 | class FigParallelogram : FigBase |
11 | { | 11 | { |
12 | + // 프로세스 평행사변형을 그리는 클래스(FigureBase를 상속) | ||
13 | + // Draw 함수에서 평행사변형을 그린다. | ||
14 | + | ||
12 | // 생성자도 상속해서 사용. | 15 | // 생성자도 상속해서 사용. |
13 | public FigParallelogram(Point location, Size size) : base(location, size) | 16 | public FigParallelogram(Point location, Size size) : base(location, size) |
14 | { | 17 | { | ... | ... |
... | @@ -9,6 +9,9 @@ namespace flowchart | ... | @@ -9,6 +9,9 @@ namespace flowchart |
9 | { | 9 | { |
10 | class FigRhombus : FigBase | 10 | class FigRhombus : FigBase |
11 | { | 11 | { |
12 | + // 프로세스 마름모를 그리는 클래스(FigureBase를 상속) | ||
13 | + // Draw 함수에서 마름모를 그린다. | ||
14 | + | ||
12 | // 생성자도 상속해서 사용. | 15 | // 생성자도 상속해서 사용. |
13 | public FigRhombus(Point location, Size size) : base(location, size) | 16 | public FigRhombus(Point location, Size size) : base(location, size) |
14 | { | 17 | { | ... | ... |
... | @@ -45,7 +45,7 @@ namespace flowchart | ... | @@ -45,7 +45,7 @@ namespace flowchart |
45 | this.btn_default.TabIndex = 0; | 45 | this.btn_default.TabIndex = 0; |
46 | this.btn_default.Text = "default"; | 46 | this.btn_default.Text = "default"; |
47 | this.btn_default.UseVisualStyleBackColor = true; | 47 | this.btn_default.UseVisualStyleBackColor = true; |
48 | - this.btn_default.Click += new System.EventHandler(this.btn_default_Click_1); | 48 | + this.btn_default.Click += new System.EventHandler(this.btn_default_Click); |
49 | // | 49 | // |
50 | // btn_rectangle | 50 | // btn_rectangle |
51 | // | 51 | // |
... | @@ -55,7 +55,7 @@ namespace flowchart | ... | @@ -55,7 +55,7 @@ namespace flowchart |
55 | this.btn_rectangle.TabIndex = 1; | 55 | this.btn_rectangle.TabIndex = 1; |
56 | this.btn_rectangle.Text = "process"; | 56 | this.btn_rectangle.Text = "process"; |
57 | this.btn_rectangle.UseVisualStyleBackColor = true; | 57 | this.btn_rectangle.UseVisualStyleBackColor = true; |
58 | - this.btn_rectangle.Click += new System.EventHandler(this.btn_rectangle_Click_1); | 58 | + this.btn_rectangle.Click += new System.EventHandler(this.btn_rectangle_Click); |
59 | // | 59 | // |
60 | // btn_rhombus | 60 | // btn_rhombus |
61 | // | 61 | // |
... | @@ -65,7 +65,7 @@ namespace flowchart | ... | @@ -65,7 +65,7 @@ namespace flowchart |
65 | this.btn_rhombus.TabIndex = 2; | 65 | this.btn_rhombus.TabIndex = 2; |
66 | this.btn_rhombus.Text = "if"; | 66 | this.btn_rhombus.Text = "if"; |
67 | this.btn_rhombus.UseVisualStyleBackColor = true; | 67 | this.btn_rhombus.UseVisualStyleBackColor = true; |
68 | - this.btn_rhombus.Click += new System.EventHandler(this.btn_rhombus_Click_1); | 68 | + this.btn_rhombus.Click += new System.EventHandler(this.btn_rhombus_Click); |
69 | // | 69 | // |
70 | // btn_linkline | 70 | // btn_linkline |
71 | // | 71 | // |
... | @@ -80,11 +80,9 @@ namespace flowchart | ... | @@ -80,11 +80,9 @@ namespace flowchart |
80 | // CustomPanel | 80 | // CustomPanel |
81 | // | 81 | // |
82 | this.CustomPanel.BackColor = System.Drawing.SystemColors.ActiveBorder; | 82 | this.CustomPanel.BackColor = System.Drawing.SystemColors.ActiveBorder; |
83 | - this.CustomPanel.FigName = null; | ||
84 | this.CustomPanel.Location = new System.Drawing.Point(174, 10); | 83 | this.CustomPanel.Location = new System.Drawing.Point(174, 10); |
85 | this.CustomPanel.Name = "CustomPanel"; | 84 | this.CustomPanel.Name = "CustomPanel"; |
86 | this.CustomPanel.Size = new System.Drawing.Size(707, 533); | 85 | this.CustomPanel.Size = new System.Drawing.Size(707, 533); |
87 | - this.CustomPanel.State = null; | ||
88 | this.CustomPanel.TabIndex = 0; | 86 | this.CustomPanel.TabIndex = 0; |
89 | // | 87 | // |
90 | // btn_parallelogram | 88 | // btn_parallelogram | ... | ... |
... | @@ -17,42 +17,32 @@ namespace flowchart | ... | @@ -17,42 +17,32 @@ namespace flowchart |
17 | InitializeComponent(); | 17 | InitializeComponent(); |
18 | } | 18 | } |
19 | 19 | ||
20 | - private void btn_default_Click_1(object sender, EventArgs e) | 20 | + private void btn_default_Click(object sender, EventArgs e) |
21 | { | 21 | { |
22 | // 초기상태 | 22 | // 초기상태 |
23 | - CustomPanel.State = "NONE"; | 23 | + CustomPanel.SelectState = State.NONE; // 선택 없음 |
24 | - CustomPanel.FigName = "NONE"; | 24 | + CustomPanel.Cursor = Cursors.Default; // 마우스 모양은 기본 |
25 | - CustomPanel.Cursor = Cursors.Default; | ||
26 | } | 25 | } |
27 | 26 | ||
28 | - private void btn_rectangle_Click_1(object sender, EventArgs e) | 27 | + private void btn_rectangle_Click(object sender, EventArgs e) |
29 | { | 28 | { |
30 | - CustomPanel.State = "DRAW"; // 도형을 그리겠다고 선택 | 29 | + CustomPanel.SelectState = State.RECTANGLE; // 사각형을 선택 |
31 | - CustomPanel.FigName = "RECTANGLE"; // 사각형을 선택 | 30 | + CustomPanel.Cursor = Cursors.Hand; // 마우스 모양은 손모양 |
32 | - CustomPanel.Cursor = Cursors.Hand; | ||
33 | } | 31 | } |
34 | - | 32 | + private void btn_rhombus_Click(object sender, EventArgs e) |
35 | - | ||
36 | - | ||
37 | - private void btn_rhombus_Click_1(object sender, EventArgs e) | ||
38 | { | 33 | { |
39 | - CustomPanel.State = "DRAW"; | 34 | + CustomPanel.SelectState = State.RHOMBUS; // 마름모를 선택 |
40 | - CustomPanel.FigName = "RHOMBUS"; // 마름모를 선택 | 35 | + CustomPanel.Cursor = Cursors.Hand; // 마우스 모양은 손모양 |
41 | - CustomPanel.Cursor = Cursors.Hand; | ||
42 | } | 36 | } |
43 | 37 | ||
44 | private void btn_parallelogram_Click(object sender, EventArgs e) | 38 | private void btn_parallelogram_Click(object sender, EventArgs e) |
45 | { | 39 | { |
46 | - CustomPanel.State = "DRAW"; | 40 | + CustomPanel.SelectState = State.PARALLELOGRAM; // 평행사변형을 선택 |
47 | - CustomPanel.FigName = "PARALLELOGRAM"; // 사각형을 선택 | 41 | + CustomPanel.Cursor = Cursors.Hand; // 마우스 모양은 손모양 |
48 | - CustomPanel.Cursor = Cursors.Hand; | ||
49 | } | 42 | } |
50 | - | ||
51 | private void btn_linkline_Click(object sender, EventArgs e) | 43 | private void btn_linkline_Click(object sender, EventArgs e) |
52 | { | 44 | { |
53 | - CustomPanel.State = "DRAW"; | 45 | + CustomPanel.SelectState = State.LINKLINE; // 링크 라인을 선택 |
54 | - CustomPanel.FigName = "LINKLINE"; // 링크 라인을 선택 | ||
55 | - // CustomPanel.Cursor = Cursors.Hand; | ||
56 | } | 46 | } |
57 | } | 47 | } |
58 | } | 48 | } | ... | ... |
No preview for this file type
-
Please register or login to post a comment