2009-10-05 3 views
0

기본적으로 2 개의 자식 컨트롤을 만들었고 부모 합성 컨트롤의 너비와 같게 너비를 설정하려고합니다. 문제는 parent.Size 속성을 사용하여이 작업을 수행 할 때 작동하지 않는다는 것입니다. 컨트롤을 추가 할 때만 한 번 작동합니다.winforms의 복합 컨트롤에서 자식 컨트롤의 크기를 변경하는 방법은 무엇입니까?

이벤트가 아닌 속성을 재정의해야합니까? 속성 변경은 크기 조정으로 알릴 수 있다고 생각했습니다. 맞습니까?

편집 :

여기

코드는 속성이 작동하지 않습니다,하지만하여 onResize 이벤트가했다.

Q2 : OnResize EventArgs를 사용하여 새 크기를 알려주지 않습니까?

public partial class CollapsableCtrl : UserControl 
{ 
    public CollapsableCtrl () 
    { 
     this.ChildCtrl = new CustomCtrl (); 
     this.Size = new Size (181, 82); 
     this.Controls.Add (this.ChildCtrl); 
    } 

    CustomCtrl ChildCtrl { get; set; } 

    public new Size Size 
    { 
     get { return base.Size; } 
     set 
     { 
      this.ChildCtrl.Size = value; 
      Invalidate (); 
     } 
    } 

    protected override void OnResize (EventArgs e) 
    { 
     base.OnResize (e); 
     this.ChildCtrl.Size = this.Size; 
    } 
} 
+0

현재 수행중인 작업과 작동하지 않는 작동 방식이 명확하지 않습니다. 몇 가지 코드를 보여주십시오. –

+0

죄송합니다, 당신 말이 맞습니다. 일부 코드를 추가했습니다. –

답변

0

자식 컨트롤에 대해 Dock 또는 Anchor 속성을 임의의 크기로 조정하지 못하도록하는 속성이 있습니까? 이 모든 작업을 수행하고 단순히 자식 컨트롤의 Size, Width 또는 Height 속성을 설정하면 항상 저에게 효과적입니다. 내 추측이 잘못 되었다면 코드를 보는 데 도움이 될 것입니다.

편집 : 귀하의 의견을 본 후 은 도크 및/또는 앵커를 사용해야합니다. 이렇게하면 자식 컨트롤을 먼저 배치 한 다음 부모가 크기가 조정되면 자식 컨트롤이 추가 작업없이 끝나게됩니다.

+0

아니요 Dock 및 앵커는 사용하지 않지만 원하는 동작이 비슷하기 때문에 사용해야합니까? 나는 복합 컨트롤에서 할 수 있는지 몰랐다. 나는 꽤 복합 컨트롤을 처음 접했습니다. –

관련 문제