WinForm 시작과 종료 이벤트




 Form 및 Control 클래스는 응용 프로그램 시작및 종료와 관련된 이벤트 집합을 노출합니다.


Form의 시작
Windows Forms 응용프로그램을 시작할 때 기본 폼의 시작 이벤트가 다음 순서로 발생 합니다.



● Form.Load
- Form이 로드되어 메모리에 올라올 때, 화면에 표시되기 직전에 발생
- 프로퍼티를 변경한다거나, 리소스를 할당하는 등 Form의 동작에 필요한 초기화 수행
- Form의 생애 동안 딱 한 번만 발생하므로 일회적인 초기화에 적합
- Form.Load 이벤트 보다 Form 클래스의 생성자가 먼저 호출 된다.


Form의 종료
응용 프로그램이 닫히면 기본 폼의 종료 이벤트가 다음 순서로 발생 합니다.



● 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 을 닫아 버리는 동작을 하면 안된다.(예외발생)



cf)
 http://msdn.microsoft.com/ko-kr/library/86faxx0d.aspx
Posted by six605
,