Programing

사용자 컨트롤, 사용자 지정 컨트롤 및 구성 요소의 차이점은 무엇입니까?

crosscheck 2020. 10. 10. 09:38
반응형

사용자 컨트롤, 사용자 지정 컨트롤 및 구성 요소의 차이점은 무엇입니까?


이것들은 당신이 프로젝트에 추가 할 수있는 세 가지 다른 것인데, 그 차이를 이해하는지 잘 모르겠습니다. 예를 들어 .NET Framework로 작업 할 때 구성 요소 도구 상자에 모두 표시되는 것 같습니다 Form. 각각에 대한 몇 가지 일반적인 사용 시나리오는 무엇입니까? 차이점은 무엇입니까?


사용자 컨트롤, 사용자 지정 컨트롤 및 구성 요소의 주요 차이점은 상속 트리의 여러 수준에서 상속된다는 것입니다.

MyComponent
   |-> Component

MyCustomControl
   |-> Control
          |-> Component

MyUserControl
   |-> ContainerControl
          |-> ScrollableControl
                 |-> Control
                        |-> Component

따라서 간단히 말해서 다양한 옵션을 사용하여 사전 배선 된 기능의 양이 다릅니다.

다른 옵션은 언제 사용합니까? (이것들은 진실이 아닌 생각과 의견입니다)

  • UI없이 기능 (예 : 타이머 구성 요소, 데이터 소스 등) 을 제공하려는 경우 구성 요소를 만듭니다.
  • 시각적 모양을 완전히 제어 할 수있는 구성 요소를 만들고 불필요한 기능의 짐을 원하지 않는 경우 사용자 지정 컨트롤을 만듭니다 . 일반적인 경우는 기능이 제한된 간단한 컨트롤 (예 : 버튼)입니다.
  • 기존 컨트롤 을 재사용 가능한 구성 요소로 결합 하려는 경우 사용자 컨트롤을 만듭니다 (예 : 목록간에 항목을 이동할 수있는 단추가있는 두 개의 목록).

이것은 CustomControl과 UserControl의 몇 가지 차이점입니다.

커스텀 컨트롤

느슨하게 결합 된 제어 wrt 코드 및 UI

제어에서 파생

ResourceDictionary에서 UI를 정의합니다.

UI는 스킨 가능

동적 레이아웃 있음

다른 프로젝트에서 UI를 변경할 수 있습니다.

완전한 도구 상자 지원

단일 컨트롤을 정의합니다.

더 유연함

==============

사용자 제어

밀접하게 결합 된 제어 wrt 코드 및 UI

UserControl에서 파생

UI를 일반 XAML로 정의

자식 컨트롤은 스킨 가능

정적 레이아웃 있음

UI가 고정되어 다른 프로젝트에서 다른 모양을 가질 수 없습니다.

도구 상자에 추가 할 수 없습니다.

컨트롤 세트를 정의합니다.

사용자 지정 컨트롤처럼 유연하지 않음


Fredrik이 말한 것에 덧붙여, 일반적으로 구성 요소와 사용자 지정 컨트롤은 프로젝트에서 재사용 할 계획 일 때 사용됩니다. 한 프로젝트에서만 사용할 때 사용자 컨트롤을 사용합니다.


내 의견으로는 마지막 진술이 정확하지 않다고 생각합니다. 여러 가지 이유로 사용자 컨트롤을 만듭니다.

주된 이유는 내가 말하면 여러 컨트롤이 함께 그룹화 된 인터페이스를 디자인하기 때문입니다.

먼저 클래스 라이브러리를 만든 다음 여기에 사용자 컨트롤을 추가합니다. 이제 사용자 컨트롤이 작동하는 방식 뒤에있는 논리의 일부를 변경해야하는 경우 매우 쉽게 할 수 있습니다. 또한이 클래스 라이브러리는 여러 번 사용할 수 있습니다.

또한 동일한 고급 라이브러리 내에서 사용자 컨트롤에 대해 공유하고 사용할 수있는 여러 클래스를 가질 수 있습니다.

이것이 내가 사용자 컨트롤을 사용하는 주된 이유입니다. 그리고 사용자 컨트롤 또는 클래스 라이브러리를 변경하는 경우. 일단 당신이 직업을 구축하면. dll은 bin 폴더에서 동적으로 업데이트됩니다.

그래서 내가 이것을 다른 프로젝트에서 참조한다면 그 변경은 새 프로젝트에도 나타날 것입니다.

또한 양식 및 양식에로드 한 항목과 동일한 페인트 루틴을 사용하지 않습니다.

So user controls gives us the ability to be very modular And i Can have multiple user controls that share the basics classes of the class library ... So a user control purpose is just not for one project . It has no limitations in that respect. jeff


The main difference between them- User Control is a page file with extension .ascx which can only be used within a single application or project But custom controls are assemblies(dll files) that can be used in multiple applications.

참고URL : https://stackoverflow.com/questions/1322451/what-is-the-difference-between-user-control-custom-control-and-component

반응형