다음을 통해 공유


방법: 도킹 동작 제어

업데이트: 2007년 11월

도킹 기능을 사용할 때 화면의 컨트롤 레이아웃은 폼에 컨트롤이 추가된 순서에 따라 달라집니다. 컨트롤이 올바른 순서로 추가되지 않은 경우에는 화면에서 컨트롤이 의도한 위치에 나타나지 않을 수도 있습니다.

폼에 컨트롤을 추가하는 순서는 z 순서에 영향을 주며, 부모 컨트롤 내에서 여러 컨트롤을 도킹할 때는 이 z 순서가 레이아웃 논리를 결정합니다. 부모 컨트롤에 맨 처음 추가하는 컨트롤이 z 순서의 맨 아래에 배치되고 그 다음에 추가하는 컨트롤은 첫 번째 컨트롤의 위에 순서대로 배치됩니다. 한 컨트롤을 다른 컨트롤에 인접하게 배치하기 위해 두 컨트롤을 부모 컨트롤 내의 동일한 영역에 도킹하면 z 순서에서 아래쪽에 있는 컨트롤이 결과 레이아웃에서 먼저 표시됩니다. 예를 들어, 두 컨트롤의 Dock 속성이 Top으로 설정되어 있는 경우 일반적으로는 z 순서에서 아래쪽에 있는 컨트롤이 화면에서 부모 컨트롤의 위쪽에 나타납니다.

그러나 컨트롤의 Dock 속성이 Fill로 설정되어 있는 경우에는 한 컨트롤이 다른 컨트롤에 겹쳐져 표시되는 문제가 발생할 수 있습니다. 예를 들어, 두 개의 컨트롤이 폼에 잘못된 순서로 추가된 경우 화면 위쪽에 두 컨트롤 중 하나만 배치하려고 해도 두 컨트롤이 겹쳐서 표시될 수 있습니다.

레이아웃 문제가 발생하면 영향을 받는 컨트롤의 z 순서를 조정해야 합니다. 이 문제를 해결하려면 폼에 컨트롤을 추가할 때 디자이너를 사용할지 여부에 따라 각기 다른 단계가 필요합니다.

도킹 레이아웃을 제어하려면

  • 관련 컨트롤이 폼에 추가되는 순서를 수정합니다.

    예를 들어, Panel 컨트롤에 TreeView 컨트롤과 Button 컨트롤을 프로그래밍 방식으로 추가한다고 가정합니다. TreeView 컨트롤의 Dock 속성은 Fill로 설정하고 Button 컨트롤의 Dock 속성은 Top으로 설정하면 TreeView 컨트롤이 Button 컨트롤을 부분적으로 가립니다. PanelTreeViewButton 컨트롤을 추가하는 코드는 다음과 유사합니다.

    this.panel1.Controls.Add(this.button1);
    this.panel1.Controls.Add(this.treeView1);
    

    이 문제를 해결하려면 이러한 컨트롤이 패널에 추가되는 순서를 변경합니다.

    this.panel1.Controls.Add(this.treeView1);
    this.panel1.Controls.Add(this.button1);
    

    컨트롤 중 하나에 BringToFront 또는 SendToBack 메서드를 사용해도 됩니다.

디자이너를 사용하여 도킹 레이아웃을 제어하려면

  1. 폼에서 잘못된 위치에 나타나는 컨트롤 중 하나를 선택합니다.

  2. 원하는 레이아웃에 따라 컨트롤을 마우스 오른쪽 단추로 클릭하고 맨 뒤로 보내기를 선택합니다.

    - 또는 -

    컨트롤을 마우스 오른쪽 단추로 클릭하고 맨 앞으로 가져오기를 선택합니다.

  3. 추가 컨트롤이 있는 경우 필요하면 도킹 동작이 수정될 때까지 다른 컨트롤에 대해 2단계를 반복합니다.

참고:

여러 개의 컨트롤이 있는 경우에는 문서 개요 창을 사용하여 z 순서를 제어하는 것이 좋습니다.

참고 항목

개념

.NET Compact Framework 방법 항목