[Windows Forms 응용 with C#] 3.1.2 ColorSelectControl 정의

이제 프로젝트에 사용자 정의 컨트롤 ColorSelectorControl을 추가하고 자식 컨트롤을 배치하세요.

[그림 3.3] ColorSelectorControl 추가
[그림 3.3] ColorSelectorControl 추가
[그림 3.4] 자식 컨트롤 배치
[그림 3.4] 자식 컨트롤 배치
 다음은 ColorSelectControl의 자식 컨트롤 Name과 형식입니다.

No Name 컨트롤 형식 설명
1 spcon SpritContainer 컨트롤 배치 목적 (2개의 패널로 구성)
2 lb_red Label Red 색상 정보 표시
3 lb_green Label Green 색상 정보 표시
4 lb_blue Label Blue 색상 정보 표시
5 tbar_red TrackBar Red 색상 값 조절
6 tbar_green TrackBar Green 색상 값 조절
7 tbar_blue TrackBar Blue 색상 값 조절

먼저 ColorChangeEventHandler 형식의 이벤트를 멤버로 추가합니다.

컨트롤을 사용하는 곳에서 색상을 가져오기 할 수 있게 속성을 정의합니다.

컨트롤이 Load할 때와 각 색상의 트랙바를 스크롤할 때 패널의 배경 색상을 바꿔주고 색상 정보를 표시할 Label의 속성을 설정하는 작업을 수행합니다. 컨트롤의 Load 이벤트, 각 트랙바의 스크롤 이벤트 핸들러를 등록하여 색상을 변경하는 메서드를 호출하세요. 물론 색상을 변경하는 메서드를 추가하세요.

색상을 설정하는 메서드 SetColor를 구현합시다.

각 트랙바의 Value 속성으로 색상 속성을 설정합니다.

또한 색상 정보 표시 레이블의 Text 속성도 설정합니다.

색상을 시각적으로 인식할 수 있게 spcon의 Panel1의 배경 색을 설정합니다.

만약 색상 변경 이벤트 핸들러가 null이 아니면 색상 변경한 사실을 알리기 위해 이벤트 핸들로를 호출합니다.

그리고 ColorSelectorControl 개체를 소유하는 곳에서 프로그램 방식으로 색상을 변경할 수 있게 메서드를 제공합니다. 여기에서는 세 가지 색상을 모두 변경하는 메서드와 단일 색상 값을 변경하는 메서드를 제공합시다.

▷ColorSelectorControl.cs

빌드한 후 Form1을 선택한 후 도구 상자를 확인하면 ColorSelectorControl 을 표시하는 것을 볼 수 있습니다.

[그림 3.5] 도구 상자의 ColorSelectorControl
[그림 3.5] 도구 상자의 ColorSelectorControl