다음을 통해 공유


컨트롤 형식 권장 사항

업데이트: 2007년 11월

.NET Framework는 새로운 컨트롤을 개발하고 구현할 수 있는 강력한 기능을 제공합니다. 익숙한 사용자 정의 컨트롤 뿐만 아니라 고유한 칠하기를 수행하는 사용자 지정 컨트롤을 작성할 수 있고 상속을 통해 기존 컨트롤의 기능을 확장할 수도 있습니다. 경우에 따라 어떤 형식의 컨트롤을 작성할 지 혼동될 수 있습니다. 이 단원은 상속할 수 있는 다양한 컨트롤 형식 간의 차이점을 자세히 설명하고 프로젝트에 사용할 형식과 관련된 고려 사항을 제시합니다.

참고:

Web Forms에서 사용할 컨트롤을 작성하려면 사용자 지정 ASP.NET 서버 컨트롤 개발을 참조하십시오.

Windows Forms 컨트롤에서 상속

기존의 모든 Windows Forms 컨트롤에서 상속된 컨트롤을 만들 수 있습니다. 이렇게 하면 Windows Forms 컨트롤의 모든 고유 기능을 유지하면서 사용자 지정 속성, 메서드 또는 기타 기능을 추가하여 해당 기능을 확장할 수 있습니다. 예를 들어, TextBox에서 파생되어 숫자만 입력 받아 특정 값으로 자동 변환하는 컨트롤을 만들 수 있습니다. 이러한 컨트롤은 텍스트 상자의 텍스트가 변경될 때마다 호출되는 유효성 검사 코드를 포함하거나 Value라는 추가 속성을 가질 수 있습니다. 일부 컨트롤의 경우 기본 클래스의 OnPaint 메서드를 재정의하여 컨트롤의 그래픽 인터페이스에 사용자 지정 모양을 추가할 수도 있습니다.

다음과 같은 경우에는 Windows Forms 컨트롤에서 상속합니다.

  • 대부분의 필요한 기능이 기존 Windows Forms 컨트롤에 있는 경우

  • 사용자 지정 그래픽 인터페이스가 필요하지 않거나 기존 컨트롤에 대한 새 그래픽 프런트 엔드를 디자인하려는 경우

UserControl 클래스에서 상속

사용자 정의 컨트롤은 공용 컨테이너로 캡슐화된 Windows Forms 컨트롤의 컬렉션입니다. 이 컨테이너는 각 Windows Forms 컨트롤과 관련된 모든 고유 기능을 가지므로 컨트롤의 속성을 선택적으로 표시하고 바인딩할 수 있습니다. 사용자 정의 컨트롤의 예로 데이터베이스의 고객 주소 데이터를 표시하는 컨트롤을 들 수 있습니다. 이 컨트롤은 각 필드를 표시하는 여러 개의 텍스트 상자와 레코드를 전체를 탐색하는 단추 컨트롤을 포함할 수 있습니다. 데이터 바인딩 속성을 선택적으로 표시할 수 있고 전체 컨트롤을 패키지하여 응용 프로그램에 다시 사용할 수 있습니다.

다음과 같은 경우에는 UserControl 클래스에서 상속됩니다.

  • 여러 Windows Forms 컨트롤의 기능을 다시 사용할 수 있는 하나의 단위로 결합하려는 경우

Control 클래스에서 상속

컨트롤을 만드는 또 다른 방법은 Control에서 상속되어 처음부터 컨트롤을 만드는 것입니다. Control 클래스는 이벤트와 같이 컨트롤에 필요한 모든 기본 기능을 제공하지만 컨트롤별 기능이나 그래픽 인터페이스는 제공하지 않습니다. Control 클래스에서 상속되어 컨트롤을 만드는 작업은 사용자 정의 컨트롤이나 기존 Windows Forms 컨트롤에서 상속되는 것보다 어렵습니다. 필요한 모든 기능별 코드는 물론 컨트롤의 OnPaint 이벤트에서 사용할 코드도 작성해야 합니다. 그러나 보다 큰 융통성이 제공되에 정확한 용도에 맞는 컨트롤을 제작할 수 있습니다. 사용자 지정 컨트롤의 예로 아날로그 시계의 모습과 동작을 복제한 시계 컨트롤을 들 수 있습니다. 내부 타이머 구성 요소의 Tick 이벤트에 대한 응답으로 시계 바늘을 이동시키는 사용자 지정 그리기를 실행할 수 있습니다.

다음과 같은 경우에는 Control 클래스에서 상속됩니다.

  • 컨트롤의 사용자 지정 그래픽 표현을 제공하려는 경우

  • 표준 컨트롤을 통해 구현할 수 없는 사용자 지정 기능을 구현할 필요가 있는 경우

참고 항목

작업

방법: 간단한 Windows Forms 컨트롤 개발

개념

사용자 지정 컨트롤의 종류