2009-08-28 8 views
3

내부에 테이블 레이아웃 패널이있는 사용자 지정 패널을 정의했습니다. 그러나 내가 winform에이 컨트롤을 사용하면 테이블 레이아웃 패널 속성에 액세스 할 수 없습니다. (예를 들어, 열을 추가하거나 셀의 다른 컨트롤을 고정시키고 싶습니다.) 수정 자 속성을 public으로 변경하려고했지만 여전히 작동하지 않습니다. 패널 레이아웃 특성을보고 변경하려면 어떻게해야합니까?C# usercontrol 모든 하위 컨트롤에 액세스하는 방법

실제로 질문은 더 일반적인 것일 수 있습니다 : 사용자 정의 컨트롤에 포함 된 컨트롤을 액세스/수정/이동하는 방법은 무엇입니까?

들으

답변

6

당신은 사용자 정의 컨트롤에서 수정하려는 속성을 노출해야합니다.

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

또한 다음 방법 사용자 정의 컨트롤을 제어하기 위해 일부 속성을 사용하여 시작할 수 있습니다 : 예를 들어, 사용자 컨트롤에서, 당신은 열 개수 속성을 노출해야 테이블 레이아웃 컨트롤의 열 개수 속성을 변경하려면

[DefaultProperty("ColumnCount")] 
public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    [Description("Gets or sets the column count of the table layout.")] 
    [Category("TableLayout")] 
    [DefaultValue(2)] 
    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

이것은 "열 개수"의 전체 사용자 제어의 기본 속성을 설정하며, 열이 속성을 설명 계산 기본을 제공한다 : 비주얼 스튜디오 표시, 예를 들면, 상술과 같이 변형 될 수있다 값을 2로 설정하고 디자이너의 속성 창에 표시 할 범주를 설정합니다. 사용자 정의 컨트롤을 사용하여 디자인 타임 지원을 추가하는 방법은 훨씬 많습니다.

+0

디자이너의 속성 창에 일부 속성을 추가하는 것이 좋습니다. 그러나 행과 열과 같은 그래픽 지원을 디자이너에 표시 할 수 있습니까? 또는 행과 열을 편집하는 도구입니까? – Toto

관련 문제