2010-02-06 4 views
2

Panel 컨트롤을 상속 한 컨트롤 클래스를 만들었습니다. 이 컨트롤에는 두 개의 다른 패널이 있으며, 그 중 하나는 IContainerControl이되고 싶습니다.자식 컨트롤을 IContainer로 만들기

전체 컨트롤을 IContainerControl로 바꾸는 방법을 알고 있지만 자식 컨트롤에 동일한 작업을 수행 할 수 없습니다. 나는 C#과 VB.Net에서 모두 시도해 보았고 둘 다 실패했다.

의미가 있습니까? 나는 검색을 시도했으나 도움이되는 것을 찾지 못했다. 희망을 갖고 여기있는 누군가 나를 도중에 얻을 수있다!

감사합니다.

편집하는 것은

미안 해요, 긴 하루 였어 ... 나는 윈폼을 사용하고 있습니다.

기본적으로 두 개의 패널 (하나는 통계를 표시하고 다른 하나는 컨트롤을 포함)이있는 사용자 정의 usercontrol이 필요합니다. 통계 패널은 완료되고 작동하지만 다른 패널에는 DataGridView, ListView 또는 TreeView (사용자가 디자인 타임에 추가하는 모든 요소)가 포함될 수 있습니다.

예, 저는 ActiveControl과 ActivateControl을 모두 구현했습니다.

+0

위의 Ian Ringrose가 묻는 질문 외에도 imho : 여기에서 달성하려는 내용을 알려주는 것이 좋습니다. 디자인 타임에 무엇을 할 수 있기를 원하십니까? 런타임에 어떤 행동을 원하십니까? IContainerControl 인터페이스에서 상속받은 패널에 대해 : 'IContainerControl.ActiveControl'및 'System.Windows.Forms.IContainerControl.ActivateControl (System.Windows.Forms.Control)'을 구현 했습니까? – BillW

+0

편집 된 질문이 도움이 되었기를 바랍니다. –

답변

2

나는 여기에 두 가지 전략을 생각 : 먼저 "싼 물건을":

저렴한 물건 전략 : 최종 사용자를 가정하는 것은 소스와의 프로그래머가 함께입니다

  1. 프로젝트는 Visual Studio 또는 Mono에서 열고 UserControls를 만들 수 있으며 컨트롤 (예 : TreeView 또는 ListView 등)을 "무엇이든"으로 끌어다 놓을 수 있습니다.

    a. 두 개의 UserControl을 만듭니다

    b. UserControl1에는 두 개의 패널을위한 공간이 있습니다.

    c. UserControl1의 한면에 Panel을 삽입하고 spec으로 디자인하십시오.

    d. UserControl2에서 : 최종 사용자가 선택한 컨트롤 (TreeView 등)을 삽입 할 수있게합니다.

    e. 두 UserControls 빌드

    f. 도구 상자 아이콘에서 UserControl1의 인스턴스를 UserControl1에 놓고 원하는대로 (도킹, 앵커, 무엇이든) 위치를 지정합니다.

다시 빌드하십시오. 이제는 WinForm에 UserControl1의 인스턴스를 배치 할 수 있으며 두 패널이 모두 포함됩니다.

비용/장점 :

  • 당신이 UserControl2를 가고 제어 최종 사용자가 선택할 수있는 표준 방법

  • 에서 각 컨트롤의 모양과 속성을 편집 할 수 있습니다.

  • 여기에는 더 많은 유지 보수 또는 연장이 용이 한 구성 요소가 더 많습니다.

  • 사용자가 TreeView를 선택했는지 아니면 ListView를 사용하여 컨트롤을 UserControl2로 이동했는지에 따라 프로그래밍을 수행 할 사람이 있습니까?

더 비싼 Stragegy 당신은 다른 컨테이너 내부에 배치 컨테이너가 디자인 타임 끌어다을 받아 들일 수있는 런타임 위치 제어를 만들기 위해 'ParentControlDesigner에서 상속으로받을 필요가가는

드롭 다운 컨트롤.

다행히도 CodeProject의 C# 소스가있는 Henry Minute의 훌륭한 기사가 있습니다. Designing Nested Controls이 기사의 맨 아래 Sacha Barber와 Henry Minute의 답변을 읽어 보시기 바랍니다.

또한 SO 여기에, 참조 : Adding design-time support for a nested container in a custom/usercontrol (Winforms).

을 하나의 전략에서 당신이 등을 둘러싸는 용기, 당신은 "최대"인상, 어떤 이벤트 노출 어떤 속성 (액세스 할 수 있도록해야 할 몇 가지 작업을해야합니다).

+0

감사합니다! 당신이 제공 한 두 링크 사이에서 나는 뭔가를 알아낼 수 있다고 생각합니다. –

관련 문제