复选框上方的复选框标签。怎么样?

时间:2011-11-04 16:57:48

标签: c# asp.net html checkbox

我正在使用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 个答案:

答案 0 :(得分:3)

我想你应该使用一个新的Control,你在Checkbox下面添加一个单独的Label(实际上包装了复选框)。 从CheckBox中派生该类,并覆盖(或定义新的,如果不是虚拟的)Text属性,因此它现在将设置Label的上部文本。 这实际上是Decorator模式的一个很好的例子。

答案 1 :(得分:2)

将text align属性设置为 TextAlign.Left ,然后使用CSS将标签的显示设置为:阻止