WinForm에서 Event가 발생하면 Event Handler를 통해 발생한 Event를 처리한다.
Program.cs : 윈도우 폼 생성과 실행(자동 생성)
기본적으로 Program.cs의 Application.Run 함수를 통해 Form1의 객체 생성 및 실행된다.
Form1.Designer.cs : 자동 생성 코드 (생성하는 Controls에 대한 속성 및 이벤트 처리 등)
Form1.cs[디자인] : 윈도우 form에 대한 디자인을 보여주는 화면
Form1.cs : 이벤트 처리 및 기타 로직을 작성하는 곳 [디자인]에서 생성된 이벤트들이 함수로 자동 생성된다.
WinForm은 기본적으로 Form1.cs[디자인] / Form1.cs / Form1.Designer.cs를 통해 동작하게 된다. [디자인]을 통해 원하는 속성을 추가하게 되면 Form1.cs에 속성에 해당하는 함수를 생성하게 되며, Designer.cs에 해당 이벤트 속성에 대한 값이 들어가게 된다.
Form 관련 기본 메시지
- WM_CREATE, WM_CLOSE, WM_DESTROY (WM = Window Message)
Form 자체에도 이벤트가 있을 수 있다.
Fom과 관련된 속성을 확인할 수 있다.
Form과 관련된 이벤트를 확인할 수 있다.
위 사진을 보게 되면 Form의 이벤트 중 Load를 확인할 수 있다.
Load : Form이 처음으로 표시되기 전에 발생하며 Form에서 사용하는 리소스를 할당한다. Public event EventHandler load를 한번만 호출하게 되며 리소스를 초기화 한다.
이와 같이 해당 속성 및 이벤트를 통해 WinForm을 동작 시키고, 이벤트를 통해 action을 취할 수 있다.
Form 속성 (Property, get / set)
- Handle : Window handle(윈도우 프로그램에 대한 고유번호)
- Text : Control 또는 Window Title-Bar에 텍스트 출력 또는 입력
- Visible : Form 또는 Control의 출력 여부를 결정한다.
- Enable : 활성 또는 비활성
- ClientRectangle : Client 크기 영역을 가져오는 역할
Event
Event는 Delegate의 확장 형태에 해당한다.
Delegate는 객체 외부에서 사용, Event는 객체의 내부에서 사용
개발자가 직접 코딩한 부분은 Event에 해당한다.
sender는 이벤트를 호출하는 객체 참조, e 이벤트에 관련된 정보를 제공하는 클래스에 해당한다.
'Embedded > C, C#, Python' 카테고리의 다른 글
C# - WinForm을 이용한 기억력 게임 (2) | 2024.06.25 |
---|---|
C# - WinForm 연습 (Form, Button, CheckBox, ComboBox, GroupBox, Label, ListBox, TextBox, Timer... 구현 ) (0) | 2024.06.10 |
C# - 계산기 만들기 (Class, Stack 사용) (코드 설명 필요) (0) | 2024.05.19 |
C - 포인터 (0) | 2024.05.13 |
C# 컬렉션, 제네릭, 널(null), LINQ (0) | 2024.04.29 |