소스코드리뷰(XXII) CheckBox and Listview

[목차(도우미)]
소스코드리뷰(XXII) CheckBox and Listview

체크박스(CheckBox)를 동적으로 생성해야 하는 경우, VB라면 컨트롤 배열을 쓰든지 Delphi등의 언어라면 동적 생성과 이벤트 프로시저를 연결해야 한다. 그러나 간단히 리스트뷰(ListView)를 이용하면 체크박스를 동적으로 생성시킬수 있다. 물론 리스트뷰에는 이미 기존 기능으로 체크박스를 표시하는 기능이 들어 있다. 이 글은 기존 기능을 쓰는 것이 아닌 이미지를 이용하여 체크박스를 구현하는 것에 관한 글이다.

CheckBox는 아이콘으로 구현된다

모든 컨트롤, 컴포넌트가 그렇듯이 그래픽 요소와 이벤트를 연결해주는 기능이 충족되면 된다. 리스트뷰에서 아이콘(SmallIcon)을 사용하여 ItemClick 이벤트에서 아이콘 이미지를 교대로 바꾸어 주면서 Checked/Unchecked 상태를 정의할 수 있다. 그리고 아이콘 이미지는 OS의 이미지를 쓸 필요가 없으므로 고유의 디자인을 사용하여 체크박스를 구현할 수 있다.

덤으로 구현한다면 MouseMove 이벤트에서 활성화 이미지로 바꾸어 주면 OS의 체크박스 못지않은 사용자 컨트롤을 구현할 수 있다. 나머지는 리스트뷰의 이벤트에서 충분히 활용할 수 있다.

Check/Unckeck Event

리스트뷰의 ItemClick에서 SmallIcon을 바꾸는 계기를 호출 처리문에 ItemClick(checked/unchecked, item)이벤트로 넘겨 주면 된다.
by 금메달.아빠 on 2010. 9. 19. 23:39