2

WindowsForm을 사용하여 C #에서 UserControl과 CustomControl의 차이점은 무엇입니까?


2 답변


4

Windows 응용 프로그램과 웹 응용 프로그램 모두에 대한 사용자 지정 컨트롤과 사용자 정의 컨트롤이 있습니다. Windows 응용 프로그램 컨트롤에는 .cs 확장이 있습니다.

매우 일반적인 의미에서 사용자 정의 컨트롤을 만드는 것이 더 쉽습니다. 텍스트 상자, 레이블 등과 같은 기존 컨트롤을 폼에 끌어다 놓을 수 있습니다. 사용자 지정 컨트롤은 일반적으로 만드는 데 더 어려워 (시간이 많이 걸리지 만) 더 큰 유연성, 사용자 지정 가능성 및 통합을 제공합니다.

간단히 말해서 중요한 차이점은 다음과 같습니다.

사용자 정의 컨트롤은 기존 컨트롤로 구성됩니다. 또한이 사실 때문에 때때로 복합 컨트롤이라고도합니다. 일반적인 예는 로그인 양식입니다. 폼과 모든 로직은이 '재사용 가능한'사용자 컨트롤 내에 포함됩니다.

사용자 지정 컨트롤은 사용자가 만드는 컨트롤입니다. Windows 양식에서는 위의 예에서와 같이 OnPaint 메서드를 재정의해야합니다. 사용자 정의 컨트롤은 사용자 컨트롤과 동일한 수준의 디자인 타임을 지원하지 않습니다 (예 : 기존 컨트롤 드래그 앤 드롭). 사용자 지정 컨트롤은 일반적으로 Visual Studio의 도구 상자에 추가 할 수있는 재사용 가능한 구성 요소로 간주되므로 일반적으로 비즈니스 또는 코드에 특정하지 않습니다.

다음은 몇 가지 코드 예제와 함께 다양한 양식으로 연결되는 링크입니다.http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx


  • & quot; 맞춤 컨트롤에 시각 인터페이스가 없습니다. & quot; 이 진술은 정확합니까? 나는 "커스텀" CustomControl에서 개발자 (개발자)가 컨트롤의 시각적 요소 (예 : 경계, 클라이언트 영역, 모양 등)를 그리는 것을 의미합니다. CustomControl에서 OnPaint 메서드 등을 사용하면 훨씬 많은 시간을 소비 할 수 있다고 생각했습니다. - Kenneth K.
  • -1, ASP.Net에 대해 이야기하고 있습니다. OP는 winforms에 대해 질문했습니다. - ken2k
  • @ ken2k - 사과, 나는 Windows Forms를 커버하기 위해 나의 대답도 업데이트했다. - Scott Sellers
  • @Digger 당신이 편집 한 downvote를 제거하지만, 어쩌면 당신은 ASP.Net에 대한 특정 질문이 ASP.Net에 관한 것이 아니므로 ASP.Net 부분을 제거 할 수 있습니까? - ken2k
  • @ ken2k - 이제 asp.net 비트를 제거했습니다. 한 번에 많은 일을하려고 할 때 질문을 잘못 읽었습니다. 내 직업과 서핑 스택 오버플로처럼. 지금 그 ok를 바란다. - Scott Sellers

3

그룹의 여러 컨트롤을 그룹화하려면 UserControl을 사용할 수 있습니다. 즉, 컨트롤 그룹을 만듭니다. 이는 프로젝트 내에서 다른 부분의 컨트롤에 대해 동일한 그룹을 사용하려는 경우에 기본적으로 수행됩니다.

기존 컨트롤을 확장하려면 CustomControl을 사용할 수 있습니다. 컨트롤은 다른 프로젝트에서 참조 할 수있는 DLL 파일로 컴파일됩니다.

연결된 질문


최근 질문