티스토리 뷰
1,2 회 이벤트에 대해 잘 알아 보셨는지요. 이번 3회차 에서는 1,2회차에 비해 난이도가 월등히 높아지게 됩니다. 반드시 이벤트를 정복하고자 한다면 1,2 회차를 직접 코드로 작성해 보며 이벤트에 대한 감각을 익히세요.
취소 가능한 이벤트
아마도 윈폼을 조금이라도 해 보신 분이라면, FormClosing/FormClosed 이벤트를 보신적이 있을 것입니다. 이 이벤트 중 FormClosing 은 폼이 닫히기 전에 발생하는 이벤트로 FormClosed 이벤트가 발생하는 것을 방지할 수 도 있답니다. 바로 이것이 취소 가능한 이벤트 입니다.(제가 붙혀서 부르는 것임 +_+)
아래의 간략한 윈폼 소스를 보면 알 수 있을 것입니다.
[그림1] FormClosing/FormClosed 예제
FormClosing 과 FormClosed 는 폼이 닫힐 때 차례로 발생하는 것을 알 수 있습니다.
하지만, 만약 CancelEventArgs 에서 제공하는 Cancel 프로퍼티를 True 로 설정할 경우 FormClosing 이후 FormClosed 이벤트를 실행되지 않습니다.
위와 같이 Cancel 프로퍼티를 True 로 설정한 경우 더 이상 FormClosed 이벤트는 발생하지 않게 되며, 폼 또한 종료하게 되지 않습니다.
이렇게 특정 이벤트가 발생하기 위해 Before/After(전후) 의 처리가 필요한 이벤트의 경우 After 이벤트를 발생하지 않도록 함으로써 Before 이벤트의 활용도가 많아진다.
이러한 Before 이벤트는 여러 가지 용도로 사용할 수 있습니다.
l 하나의 이벤트 구현에 들어갈 내용을 Before/After 단계로 구분하여 작성할 수 있습니다.
l Before 이벤트에서 유효성 검사를 실시하여, 이벤트의 진행/취소 유무를 결정할 수 있습니다.
대략 위 두 가지 정도가 가장 많이 활용될 수 있을 것 같습니다.
실제로 여러 상용 컨트롤에서는 위와 같은 Before/After 와 같은 굉장히 방대한 이벤트를 제공해 줍니다. 하나의 이벤트로 처리될 것이 두 개의 Before/After 이벤트로 제어할 수 있게 되면 보다 직관적이고 구현을 분리하여 작성하는데 도움이 됩니다.
다음 회차에 이러한 취소 가능한 이벤트를 만들어 보도록 하겠습니다.
'.NET > C#' 카테고리의 다른 글
실전 event [5] - 취소 가능한 버튼 서버컨트롤 만들기 (0) | 2007.12.18 |
---|---|
실전 event [4] - 취소 가능한 이벤트 만들기 (0) | 2007.12.17 |
실전 event [2] - 유저컨트롤에서 페이지로 이벤트로 값 전달 (0) | 2007.12.16 |
실전 event [1] - 이벤트 시작하기 (0) | 2007.12.16 |
[C# 3.0] LINQ to Sql 의 쿼리를 로그로 남겨보자 (0) | 2007.12.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- 2,841,738
- Today
- 3
- Yesterday
- 47
링크
- ***** MY SOCIAL *****
- [SOCIAL] 페이스북
- [SOCIAL] 팀 블로그 트위터
- .
- ***** MY OPEN SOURCE *****
- [GITHUB] POWERUMC
- .
- ***** MY PUBLISH *****
- [MSDN] e-Book 백서
- .
- ***** MY TOOLS *****
- [VSX] VSGesture for VS2005,200…
- [VSX] VSGesture for VS2010,201…
- [VSX] Comment Helper for VS200…
- [VSX] VSExplorer for VS2005,20…
- [VSX] VSCmd for VS2005,2008
- .
- ***** MY FAVORITES *****
- MSDN 포럼
- MSDN 라이브러리
- Mono Project
- STEN
- 일본 ATMARKIT
- C++ 빌더 포럼
- .
TAG
- .NET Framework 4.0
- testing
- Visual Studio 2010
- umc
- .NET
- github
- Silverlight
- Team Foundation Server 2010
- 비주얼 스튜디오 2010
- monodevelop
- 엄준일
- Windows 8
- Visual Studio 11
- ALM
- ASP.NET
- Managed Extensibility Framework
- 땡초
- TFS
- Visual Studio
- mono
- LINQ
- TFS 2010
- Visual Studio 2008
- 비주얼 스튜디오
- test
- c#
- MEF
- POWERUMC
- Team Foundation Server
- 팀 파운데이션 서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
- 2020/05 (1)
- 2019/10 (3)
- 2018/11 (1)
- 2018/08 (2)
- 2017/04 (1)
- 2017/01 (2)
- 2016/11 (2)
- 2016/08 (1)
- 2016/05 (1)
- 2016/04 (2)
- 2016/02 (2)
- 2016/01 (1)
- 2015/05 (1)
- 2015/04 (2)
- 2015/03 (1)
- 2015/02 (1)
- 2015/01 (1)
- 2014/11 (1)
- 2014/09 (2)
- 2014/08 (2)
- 2014/05 (2)
- 2014/04 (3)
- 2014/03 (2)
- 2014/02 (2)
- 2014/01 (4)
- 2013/12 (2)
- 2013/11 (1)
- 2013/10 (2)
- 2013/09 (6)
- 2013/08 (3)