2011-11-04 6 views
2

저는 C# visual studio 2010을 사용하여 ASP.NET 웹 사이트를 개발하고 있습니다.확인란 체크 상자 위의 확인란 레이블. 방법?

런타임에 동적으로 확인란을 만듭니다.

CheckBox chkbox = new CheckBox(); 
chkbox.ID = "chk" + checkboxID; 

// Add our checkbox to the panel 
dynamicPanel.Controls.Add(chkbox); 
chkbox.Text = checkboxName; 

기본적으로 레이블은 확인란 오른쪽에 표시됩니다. chkbox.TextAlign = TextAlign.Right/Left를 조정하여 레이블을 좌우로 성공적으로 이동할 수 있습니다.

나는 내 인생에 대해 알아챌 수없는 것은 확인란 위에 텍스트를 설정하는 방법입니다.

verticle-align : -3px와 같은 종류의 해킹이 필요하지 않습니다. 사용자가 텍스트의 글꼴과 크기를 선택할 수 있기 때문에이 기능이 작동하지 않기 때문입니다. 항상 -3px 깊이가되지는 않습니다.

+2

이 작업을 수행하기 위해 CSS를 사용하면 무엇이 문제입니까? – Didaxis

+0

@ErOx 그리고 CSS로 이것을 어떻게 완성 할 수 있습니까? 나는 라벨과 체크 박스를 사용하지 않고있다. 텍스트 속성이 정의 된 레이블을 사용하고 있습니다. – clamchoda

+0

그런 다음 레이블을 사용하십시오. 이것은 TextAlign.Left | Right 속성을 설정하는 것입니다. 어쨌든 – Didaxis

답변

2

텍스트가 다음에 라벨의 표시를 설정하는 CSS를 사용 TextAlign.Left에 속성을 정렬 설정 : 블록.

3

체크 상자 아래에 별도의 레이블을 추가하는 새 컨트롤로 이동해야한다고 가정합니다. 실제로는 확인란을 래핑합니다. CheckBox에서 해당 클래스를 파생시키고 Text 속성을 재정의 (또는 가상이 아닌 경우 새로 정의)하여 상위 레이블의 텍스트를 설정합니다. 이것은 실제로 Decorator 패턴의 좋은 예입니다.

+0

레이블/확인란의 위치를 ​​동적으로 추가하는 것은 물론 동적으로 함께 묶어 두는 것 (동적으로 약 20 개를 만듭니다)은 매우 어려울 것 같습니다. 내가 틀렸어? – clamchoda

+1

그런 경우에 위치를 동적으로 설정하지는 않을 것입니다 (가능한 경우). 래핑 컨트롤에 이미 미리 설정된 위치가 있습니다. 당신이 할 수있는 유일한 일은 컨트롤을 인스턴스화하고 Label 속성을 설정하는 것입니다. – Artak