2012-11-18 2 views
5

사용자 정의 컨트롤을 기본 클래스로 사용했습니다.이 클래스는 3 개의 레이블 (3 행)을 가진 (BaseUC라고 부름) (보호 된 것으로 설정되어 있음).상속 된 사용자 컨트롤에서 상속 된 항목의 위치를 ​​변경하는 방법

그리고 거기에서 상속하는 다른 사용자 정의 컨트롤이 있습니다 (InheritedUC). InheritedUC에 두 개의 레이블을 더 추가했습니다.이 레이블은 기본 레이블 사이에 위치합니다 (그래서 5 개의 행이 있습니다).

Visiual Studio의 디자인 UI보기가 모두 정상입니다. 하지만 응용 프로그램을 실행하면 BaseUC의 레이블이 InheritedUC의 레이블과 겹치므로 상속 된 컨트롤의 레이블을 볼 수 없습니다.

해결 방법이 있습니까? MSDN에서 당신에게

+0

디자인 문제. 귀하의 html 또는 CSS 관련. 자사 asp.net, C# 또는 상속 문제가 아닙니다. –

+1

상단 및 좌측 위치를 명시 적으로 설정해야 할 수도 있습니다. 현재 렌더링/생성중인 항목을 확인하십시오. 또는 하위 클래스에서 사용할 수있는 일종의 계산 된 공용 속성을 기본 클래스에서 사용하십시오. – ryadavilli

+0

감사 ryadavilli. 상속 된 클래스에서 최상위 순위를 명시 적으로 설정했습니다. 그러나 어떻게 든 그 일을 피할 수 있다면 나는 생각하고 있었다. – Yalda

답변

1

대단히 감사합니다 :

Control.Anchor Property은 컨트롤이 자동으로 인 부모 컨트롤의 크기를 조정으로 크기를 조정하는 방법을 정의하는 앵커 속성을 사용합니다. 부모 컨트롤에 컨트롤을 고정하면 부모 컨트롤의 크기를 조정할 때 고정 된 가장자리가 부모 컨트롤의 가장자리를 기준으로 동일한 위치에 그대로 유지됩니다.

컨테이너를 하나 이상의 가장자리에 고정시킬 수 있습니다. 의 경우 Anchor 속성 값이 이 위쪽과 아래쪽으로 설정된 단추가있는 양식이있는 경우 Button은 양식의 위쪽 및 아래쪽 가장자리에 고정 거리를 유지하도록 펼쳐져 양식의 높이 증가합니다.

모든 레이블에 Anchor 속성 설정 : 예를 들면 :

label1.Anchor = AnchorStyles.Top | AnchorStyles.Left; 
1

다음 옵션 FlowLayoutPanel에 컨트롤을 넣어 설정 한 경우 :

AutoScroll = True 
FlowDirection = TopDown 
WrapContents = False 

하는 그런 당신이 얻을해야 패널은 컨트롤이 추가되거나 제거 될 때 커지고 축소됩니다.

Source

관련 문제