2011-11-04 115 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

將文本對齊屬性設置爲TextAlign.Left然後使用CSS將標籤的顯示設置爲:

3

我想你應該去一個新的控制,你在複選框下面添加一個單獨的標籤(實際上包裝複選框)。 從CheckBox中獲取該類,然後覆蓋(或定義新的如果不是虛擬的)Text屬性,因此它現在將設置上層Label的文本。 這實際上是Decorator模式的一個很好的例子。

+0

爲標籤/複選框動態添加位置並將它們綁定在一起(我動態地創建了其中的大約20個)看起來好像會是頭痛,am我錯了? – clamchoda

+1

你不會在這種情況下動態設置位置(儘管你可以)。您已經在包裝控件中預設了該位置。剩下的唯一要做的就是實例化控件並設置Label屬性。 – Artak