2009-10-05 2 views
1

내가 생각할 수있는 가장 가까운 것은 패널을 식별하는 맨 위에 맞춤형 그림이있는 GroupBox 컨트롤입니다.Winforms에서 축소 가능한 패널을 사용자 지정 컨트롤로 만드는 방법은 무엇입니까?

가능합니까? 버튼, 슬라이더, 색상 선택기와 같은 독립적 인 사용자 정의 컨트롤을 수행했지만 GroupBox에서 이러한 종류의 드로잉을 수행 할 수 있는지 확실하지 않습니다.

GroupBox 또는 TabPanel을 그룹화해야합니다.

내가 사용할 수있는 그물에 대한 대안이 있습니까?

내가 시작하기 전에 대안을 탐색 해보십시오.

답변

1

왜 복합 컨트롤을 만들지 않는가? .. 2 패널 또는 레이블과 패널 또는 사용자의 필요에 맞는 것이면 효과가 있습니다. 그리기는 그리 어려운 일은 아니지만 원하는 기능에 지나치게 복잡해 보입니다. 마크가 완전히 빠졌습니까?

+0

어떻게 복합 컨트롤을 만드나요? 하나 이상의 컨트롤로 구축 된 단일 컨트롤을 단일 컨트롤로 사용자 지정할 수 있다는 의미입니까? –

+0

물론 OO라는 측면에서 생각해 보면 기본적으로 원하는대로 할 수 있습니다. UserControl/Control에서 상속 한 객체를 만듭니다 (사용자 및 사용자의 요구에 따라 다름). 그런 다음 구성 요소를 만들 수 있지만 필요한 기능을 모두 사용할 수 있습니다. 당신이 이미 자신의 사용자 지정 컨트롤을 만든다면 이것이 사소한 작업이라고 생각할 것입니다. –

+1

컨테이너 기능이 필요한 경우에는 IContainerControl을 구현하고 디자이너 컨테이너 지원을 위해 적절한 디자이너 특성으로 개체를 장식해야합니다. –

4

우리가 사용한 기법은 프레임의 상단에 도킹 된 여러 개의 패널을 만들고 높이를 0으로 설정하는 것이 었습니다. 그런 다음 패널을 표시 할 때 높이를 올바르게 설정했습니다. Winforms는 다른 패널을 자동으로 리플 로우하여 새 패널을 수용합니다.

반복 타이머를 생성하여 수백 밀리 초마다 트리거하여 전체 높이에 도달 할 때까지 패널 높이를 몇 픽셀 늘릴 수도 있습니다. 이렇게하면 패널이 멋진 애니메이션으로 펼쳐집니다.

+0

일을 애니메이션 추천을 위해 - 그런 약간의 시각은 UX에서 먼 길을 간다. –

3

다른 사람들이 어떻게했는지보십시오. 코드 프로젝트에 무리가 있습니다. 거기서 검색해보십시오.

나는 얼마 전에이 하나를 사용하고 좋아 :

Windows XP style Collapsible Panel Bar

관련 문제