2009-09-11 1 views
1

나는 컨트롤이있는 각 탭에 내 양식에 tabcontrol을 가지고 있습니다. 각 컨트롤은 비슷합니다. 각각 테이블과 몇 개의 단추가 있고 각 컨트롤은 도킹 채우기로 설정되어 있습니다.C# Windows Forms, 탭의 컨트롤

내가 볼 때 볼 수있는 첫 번째 탭은 예상대로 배열되어 있고 모두 괜찮습니다. 그러나 두 번째 및 세 번째 탭은 각 컨트롤이 중앙에서 벗어나서 겹쳐서 표시됩니다 탭의 모서리.

다른 컨트롤을 다른 탭에 배치하는 방법을 실험했습니다. 컨트롤이 첫 번째 탭에 있으면 제대로 표시되고, 다른 탭에 있으면 이상한 것처럼 보일 수도 있습니다.

정말 큰 문제는 이것이 런타임에 표시되는 것처럼 보이지만 가끔씩 나타나는 것입니다.

컨트롤 및 탭의 속성을 확인했지만 모두 동일하게 보입니다.

조언을 주시면 감사하겠습니다.

종류는

MeeM

+0

스크린 샷을 첨부하거나 코드를 게시 할 수 있습니까? – Graviton

+0

아마 내가 생각하는 것 중 하나가 탭이거나 tabcontrol이 실제보다 더 크다고 생각하는 것입니다. –

+0

크기 조정 처리기에 사용자 지정 코드가 있습니까? – Nick

답변

0

나에게 벌레처럼, 당신은 비주얼 스튜디오에 대한 모든 최신 업데이트가 있는지 확인 보인다 간주한다.

+0

나는 최신 업데이트가 있는지 확인했습니다. –

0

탭에 배치 할 UserControl입니까? 그렇다면 사용자 정의 컨트롤의 모든 레이아웃 속성과 사용자 정의 컨트롤 내부의 자식 컨트롤을 검사합니다. 이전에이 문제가 있었지만 해결할 수있는 것을 기억하지 못합니다.

0

이 시도 :

  1. 우선은 컨트롤의 Z 순서가 올바른지 확인하는 것입니다. 이를 위해 문서 개요 윈도우 (보기 -> 다른 윈도우 -> 문서 개요)를 열고 각 컨트롤의 순서를 하나씩 시각적으로 확인하십시오. 컨트롤의 도킹 속성을 설정할 때 컨트롤의 z 순서는 반대 방향으로 적용됩니다. 즉, 문서 외곽선에 표시된 첫 번째 하위 컨트롤은 문서 개요 창에서 같은 레벨보다 낮은 우선 순위의 도킹 우선 순위를 갖습니다.

  2. 동일한 부모 (귀하의 경우 tabControl)에 2 명의 자식 컨트롤이 DockStyle.Fill을 가지고 있는지 확인하십시오. 도킹을 사용하는 좋은 방법은 하나의 자식 컨트롤 만 도킹을 채우기로 설정해야합니다. 이 경우에는 레이아웃 흐름을 재고 할 가능성이 높습니다. 레이아웃 흐름을 변경하고 채우기로 하나만 가질 수 있습니다. 다른 도킹 스타일 (오른쪽, 왼쪽, 위쪽, 아래쪽)은 둘 이상의 자식 컨트롤에서 사용할 수 있으며 아무런 문제가 발생하지 않습니다. 오직 Fill 만 문제가되는 것입니다.

  3. 1 또는 2가 문제를 해결하면 도킹을 완전히 피하고 대신 앵커링을 사용하는 것이 좋습니다. 기본적으로 컨트롤의 Anchor 속성을 사용하여 매우 비슷한 결과를 얻을 수 있습니다. 실제로 WPF 앵커링과 비슷하기 때문에 실제로이 접근 방식을 더 좋아합니다.

  4. 1, 2는 문제를 해결하지 못합니다. 문서 개요로 이미지를 게시하십시오. 여기에서 다시 작성하여 수정하고 여기에 솔루션을 게시하십시오.

희망이있었습니다.

0

나는 이것이 우리가 말하는 사용자 정의 컨트롤이라고 생각합니다.사용자 정의 컨트롤을 탭에 추가 한 이후에 컨트롤 (클래스) 자체의 레이아웃을 변경 했습니까? 그렇다면 Dock, 너비, 높이 등의 새 값으로 자동으로 업데이트되지 않습니다.