이것들은 당신이 프로젝트에 추가 할 수있는 세 가지 다른 것인데, 차이점을 이해하는지 잘 모르겠습니다. 예를 들어 .NET Framework로 작업 할 때 구성 요소 도구 상자에 모두 표시되는 것 같습니다 Form
. 각각에 대한 몇 가지 일반적인 사용 시나리오는 무엇입니까? 차이점은 무엇입니까?
답변
사용자 컨트롤, 사용자 지정 컨트롤 및 구성 요소의 주요 차이점은 상속 트리의 여러 수준에서 상속된다는 것입니다.
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
따라서 간단히 말해서 다양한 옵션을 사용하여 사전 배선 된 기능의 양이 다릅니다.
다른 옵션을 언제 사용 하시겠습니까? (이것들은 진실이 아니라 생각과 의견입니다)
- UI없이 기능 을 제공하려는 경우 (예 : 타이머 구성 요소, 데이터 소스 등) 구성 요소를 만듭니다.
- 시각적 모양을 완전히 제어 할 수있는 구성 요소를 만들고 불필요한 기능의 짐을 원하지 않는 경우 사용자 지정 컨트롤을 만듭니다 . 일반적인 경우는 기능이 제한된 간단한 컨트롤 (예 : 버튼)입니다.
- 기존 컨트롤 을 재사용 가능한 구성 요소로 결합 하려는 경우 사용자 컨트롤을 만듭니다 (예 : 목록간에 항목을 이동할 수있는 단추가있는 두 개의 목록).
답변
Fredrik이 말한 것에 덧붙여, 일반적으로 구성 요소와 사용자 지정 컨트롤은 프로젝트에서 재사용 할 계획 일 때 사용됩니다. 한 프로젝트에서만 사용할 때 사용자 컨트롤을 사용합니다.
답변
내 의견으로는 마지막 진술이 정확하지 않다고 생각합니다. 여러 가지 이유로 사용자 컨트롤을 만듭니다.
주된 이유는 내가 말하면 여러 컨트롤이 함께 그룹화 된 인터페이스를 디자인하기 때문입니다.
먼저 클래스 라이브러리를 만든 다음 여기에 사용자 컨트롤을 추가합니다. 이제 사용자 컨트롤이 작동하는 방식 뒤에있는 논리의 일부를 변경해야하는 경우 매우 쉽게 할 수 있습니다. 또한이 클래스 라이브러리는 여러 번 사용할 수 있습니다.
또한 동일한 고급 라이브러리 내에서 모든 사용자 컨트롤에 대해 공유 및 사용할 수있는 여러 클래스를 가질 수 있습니다.
이것이 내가 사용자 컨트롤을 사용하는 주된 이유입니다. 그리고 사용자 컨트롤 또는 클래스 라이브러리를 변경하는 경우. 일단 당신이 직업을 구축하면. dll은 bin 폴더에서 동적으로 업데이트됩니다.
그래서 내가 이것을 다른 프로젝트에서 참조한다면 이러한 변경 사항은 새 프로젝트에도 나타납니다.
또한 양식 및 양식에로드 한 항목과 동일한 페인트 루틴을 사용하지 않습니다.
따라서 사용자 컨트롤은 우리에게 매우 모듈화 될 수있는 능력을 제공합니다. 그리고 클래스 라이브러리의 기본 클래스를 공유하는 여러 사용자 컨트롤을 가질 수 있습니다. 따라서 사용자 컨트롤 목적은 하나의 프로젝트를위한 것이 아닙니다. 그 점에는 제한이 없습니다. 제프
답변
사용자 정의 컨트롤 의 주요 차이점은 확장명이 .ascx 인 페이지 파일로 단일 애플리케이션 또는 프로젝트 내에서만 사용할 수 있지만 사용자 정의 컨트롤은 여러 애플리케이션에서 사용할 수있는 어셈블리 (dll 파일)입니다.