일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Data Structure
- jupyter
- github
- HTML
- jupyter lab
- 도커
- c# 추상 클래스
- 플러터
- 깃
- git
- docker
- 유니티
- Algorithm
- C++
- c# 윈폼
- Unity
- Houdini
- Python
- Flutter
- gitlab
- vim
- c# winform
- c언어
- dart 언어
- 포인터
- c#
- C언어 포인터
- 구조체
- C# delegate
- 다트 언어
Archives
- Today
- Total
nomad-programmer
[Programming/C#] WinForm : 시작과 종료 이벤트 본문
Form 및 Control 클래스는 응용 프로그램 시작 및 종료와 관련된 메소드를 제공한다.
Form의 시작
Windows Forms 응용 프로그램을 시작할 때 기본 폼의 시작 이벤트가 다음과 같은 순서로 발생한다.
Form.Load
- Form이 로드되어 메모리에 올라올 때, 화면에 표시되기 직전에 발생.
- 프로퍼티를 변경한다거나, 리소스를 할당하는등 Form의 동작에 필요한 초기화 수행.
- Form의 생애 동안 딱 한번 발생하므로 일회적인 초기화에 적합.
- From.Load 이벤트보다 Form 클래스의 생성자가 먼저 호출 된다.
Form의 종료
Windows Forms 응용 프로그램이 닫히면 기본 폼의 종료 이벤트가 다음과 같은 순서로 발생한다.
Form.Closing
- Form이 닫히기 직전에 발생.
- 인수로 FormClosingEventArgs 객체가 전달되는데, 이 객체의 Cancel 프로퍼티를 true로 설정하면 종료를 취소할 수 있다.
Form.Closed
- Form이 닫힐 때, 즉 생애를 마치고 파괴될 때 발생.
- Form.Load 이벤트에 반대되는 이벤트로 Form의 생애 딱 한번만 전달된다.
- Form.Load 에서 할당한 리소스를 이 이벤트에서 해제한다.
- .NET 2.0 이전에는 Closed라는 이벤트를 사용했었다. 허나 2.0 이후부터는 FormClosed로 바뀌었다.
- 별도의 인수는 전달되지 않는다.
Application 클래스의 ApplicationExit 이벤트는 기본 폼의 종료 이벤트 이후에 발생한다.
생성자와 Load 이벤트
- 호출 순서: 생성자 → Load 이벤트.
- 생성자는 언어 차원에서 컴파일러가 자동으로 호출하는 메소드.
- Load 이벤트는 라이브러리 차원에서 프레임워크에 의해 호출되는 메소드.
- 생성자는 객체를 초기화하는 시점을 제공하기 위해 호출되므로 초기화 작업만 진행해야하며 Form을 닫아 버리는 동작을 하면 안된다(예외발생).
'Programming > C#' 카테고리의 다른 글
[Programming/C#] TcpListener & TcpClient (5) | 2020.10.04 |
---|---|
[Programming/C#] WinForm : 비동기 작업 (0) | 2020.10.03 |
[Programming/C#] WinForm : Form Designer (0) | 2020.10.03 |
[Programming/C#] WinForm : Form 컨트롤 (0) | 2020.10.02 |
[Programming/C#] WinForm : 윈도우 모양 바꾸기 (0) | 2020.10.02 |
Comments