2011-10-20 6 views
1

ListBox 클래스에서 상속하고 일부 함수를 재정 의하여 사용자 지정 목록 상자를 만들고 싶다면 사용자 정의 컨트롤이나 사용자 지정 컨트롤을 만들어야합니까? 나는 사용자 컨트롤을 사용해야한다고 읽었지만 사용자 컨트롤을 추가 할 때 사용자 정의 컨트롤이 비어있는 반면 제거 할 수없는 디자이너의 패널 컨트롤이 제공되며 아무 것도 끌 수 있습니다.사용자 지정 목록 상자 만들기

public partial class UserControl1 : UserControlpublic partial class UserControl1 : ListBox (사용자 정의 컨트롤)으로 변경하려고 시도하면 VS는 AutoScaleModeAutoScaleDimensions과 같은 속성을 추가하지 않습니다.

+0

자동 크기 조정은 목록 상자가 아닌 컨테이너의 작업입니다. ListBox에서 파생되는 것은 정확합니다. UserControl1이라고하지 마십시오. –

+0

방금 ​​VS의 기본 설정을 예제로 사용했습니다. ListBox에서 User Control 폼으로 파생되면 VS가 설정을 자동 조정하지 못하기 때문에 오류가 발생합니다. 그래서 사용자 정의 컨트롤이 적절한 것인지 또는 사용자 지정 컨트롤이 대신 사용해야하는지 묻는 것입니다. – Jack

답변

2

UserControl은 컨테이너 컨트롤입니다. 그것은 패널과 함께 "함께"하지 않습니다 - 일종의 "패널"입니다 (단 패널이 아닙니다 - 그냥 빈 ContainerControl입니다). 그래서 당신은 그들을 배치 할 수 있습니다. 사용자 정의 컨트롤은 Control에서 파생되며 코드에서 순전히 항목을 만들고 배치합니다. 일반적으로 간단한 컨트롤에는 하위 컨트롤이 없습니다.

ListBox에서 상속 한 경우 완전히 오해하지 않는 한 해당 속성을 직접 추가해야합니다.

그러나 사용자 지정 요소를 ListBox에 그릴 필요가 있지만 기능을 변경하지 않으면 대신 ListBox를 소유자 드로잉하는 것이 좋습니다. 인터넷에는 많은 예가 있습니다.

+0

사용자 정의 컨트롤이 기존의 winforms 컨트롤에서 사용자 지정 컨트롤을 만드는 데 사용되는지 여부를 묻습니다. 사용자 정의 컨트롤에서 ListBox를 상속하면 Visual Studio와 Intellisense가 자동으로 조정되지만 사용자 정의 컨트롤에서는 작동하지 않습니다. – Jack

+0

@ 잭 : 어느 쪽도 아니야. 가능하면 상속받습니다. (그렇지 않은 경우에는 사용자 정의 컨트롤을 사용할 수도 있지만 일반적으로 사용자 컨트롤이 아닙니다.) – Ryan

+1

상속으로 무엇을 의미합니까? 기존 컨트롤을 수정하려면 사용자 컨트롤/사용자 정의 컨트롤을 만들어 어쨌든 상속해야합니다. – Jonas

관련 문제