2010-08-09 5 views
9

에 고정하려면 :는 방법 위로 내가 다음 줄을 쓸 수 앵커와 왼쪽

myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left); 

그리고 왼쪽 상단에 myControl을 고정합니다.

이유는 다음을 수행 할 수 없습니다

myControl.Dock = (DockStyle.Top | DockStyle.Left); 

나는 위의 라인을 쓸 수 있지만,이하는 모두 왼쪽으로 DockStyle 설정됩니다.

의견/이유는 무엇입니까?

+0

도킹, 앵커 및 컨테이너 컨트롤 (TableLayoutPanel과 같은)을 사용하여 원하는 레이아웃을 얻는 방법을 완전히 이해하지 못했다고 생각합니다. 이러한 요소를 사용하면 양식/컨트롤의 크기에 따라 적절하게 확장되는 모든 종류의 레이아웃을 작성할 수 있습니다. 레이아웃에서 달성하고자하는 것에 대해 더 많은 정보를 제공한다면 나는 해결책을 찾을 수있을 것이라고 확신합니다. – Oliver

답변

11

DockStyle을 설정하면 기본적으로 지정된 가장자리의 도트를 채우거나 채우기 때문에이 작업을 수행 할 수없는 이유가 있습니다. 예를 들어

DockStyle.Left는 상품의 높이가, Y 위치는 항상

DockStyle.Top 0 수단, 0 것 항상 용기와 상기 X 높이 것이다 고정되는 것을 의미의 폭 항목은 항상 컨테이너의 너비이며 위치는 항상 0,0이됩니다.

설정 DockStyle.TopDockStyle.Left은 기본적으로 DockStyle.Fill입니다. 나는. 동일한 폭의 높이의 컨테이너.

+0

고마워, 내가보기에는 그것이 설명된다. 나는 그것을 구술하는 방법을 알아 내면 내가 성취하고자하는 것에 대해 다른 질문을 제기해야 할 수도 있습니다! – AidanO

+0

문제 없습니다. 나는 도킹과 고정의 모든 고통을 겪었으므로 다음 질문을 계속 주시 할 것입니다. – GenericTypeTea

1

은 많은 수로 설정할 수있는 Anchor이 아니라 한 값으로 만 설정할 수 있습니다.

그 이유는 Anchor 속성이있어서 컨트롤이보다 자세하게 크기를 조정하는 폼에 반응하는 방식을 조정할 수 있기 때문입니다.

+0

이것은 사실이지만 도킹에 대한이 제한의 이유는 무엇이며 주위에는 방법이 있습니까? – AidanO

+0

나는 Dock이 단순하고 쉬운 컨트롤의 도킹을위한 것일 뿐이며 배수가 없다는 것을 알 수있는 특정 이유를 모른다. 앵커도. – w69rdy

3

Dock은 미리 결정된 앵커 세트이고, 반면에 Anchor은 커스텀 독 구성이다.

DockStyle.Top은 앵커가 모든 초기 위치에 있고 도크가 먼 가장자리로 이동할 수 있다는 것을 제외하고는 Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)과 동일합니다.

+0

그들은 비슷 합니다만, 그들은 같지 않습니다. 앵커링을 사용하면 컨테이너 가장자리에서 떨어진 위치를 설정할 수 있습니다. 도킹하면 도킹 된 컨트롤이 지정된 가장자리로 강제로 이동합니다. 나는. 왼쪽 = 0. 위 = 0입니다. – GenericTypeTea

+0

@GenericTypeTea 내 대답에 이것을 말한 적이 있습니다. – Codesleuth

+0

그렇게했습니다. 사과드립니다. 제대로 읽지 못했습니다. – GenericTypeTea