[C#기초] 8. 윈도우 프로그래밍 및 이벤트 핸들러
INDEX
윈도우 폼
Program.cs
- 윈폼 생성과 실행
Form.cs
- 폼 프로그래밍
Form.Designer.cs
- 자동 생성코드 (이벤트처리, 컨트롤 속성 등…)
- 폼 위에 올려지는 컨트롤과 폼의 속성을 설정하는 자동 생성 코드
- 되도록 편집하지 않는 것이 좋다
From
속성
-
Handle
-
- 윈도우 핸들
-
Text
-
- 컨트롤 또는 윈도 타이틀바에 텍스트 출력 or 입력
-
Visible
-
- 폼 또는 컨트롤의 출력 여부 결정
-
Enable
-
- 비활성 또는 활성
-
ClientRectangle
-
- 클라이언트 크기 영역을 가져오는 역할
메서드
-
Invalidate()
-
- 특정 영역 또는 무효화 영역을 다시 출력하는 역할
-
Update()
-
- 현재 무효화 영역만 다시 출력
-
Activate()
-
- 폼을 활성화
-
Close()
-
- 폼을 닫는다
-
ShowDialog()
-
- 폼을 모달 대화상로 출력
간단한 이벤트 핸들러 및 출력
간단한 이벤트 핸들러 생성 (Visual studio 2017 기준)
-
속성창의 이벤트 아이콘 사용 시
자동생성 코드 사용
- 자동생성코드는 삭제 할 때 이벤트 핸들러는 속성창에서 삭제해줌
- 내가 작성한 코드는 따로 삭제해야함
- 자동생성코드 -> 툴에서 수정/삭제
- 내가 작성항 코드 -> 내가 직접 삭제
화면 출력 객체 가져오기
-
화면 출력 과정
-
WM_PAINT
-
Paint event
-
paint event handler
-
이벤트 처리 메서드
Form1_Paint() { .... }
-
-
Graphics
-
출력 객체
-
e.Graphics
를 통해 getpublic Graphics Graphics {get;}
-
간단한 출력
-
GUI를 이용하여
Form.cs
에서 이벤트-모양-Paint를 클릭 -
From.Designer.cs
파일에서 아래 추가this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
-
Form.cs
파일에서 아래 추가private void Form1_Paint(object sender, PaintEventArgs e) { }
-
텍스트 출력
Graphics.DrawString()
DrawString(string s, Font font, Brush brush, float x, float y)
font
:control.Font
속성 설정brush
:Brushes.Black
-
도형 출력
-
Graphic
에서 제공- 선 :
DrawLine()
- 원형 :
DrawlEllipse()
- 사각형 :
DrawRectangle()
- 선 :
-
Pen
: 선 그리기 객체-
System.Obejct
-System.Drawing.Pens
Public Sealed class Pens
public static Pen Black { get; }
-
-
간단한 출력 예제 코드
private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawString("Hello World!", Font, Brushes.Black, 10, 10); e.Graphics.DrawLine(Pens.Red,10,10,200,10); e.Graphics.DrawLine(Pens.Black,10,20,100,100); e.Graphics.DrawLine(Pens.Black,130,20,100,100); }