我正在使用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。
答案 0 :(得分:3)
我想你应该使用一个新的Control,你在Checkbox下面添加一个单独的Label(实际上包装了复选框)。 从CheckBox中派生该类,并覆盖(或定义新的,如果不是虚拟的)Text属性,因此它现在将设置Label的上部文本。 这实际上是Decorator模式的一个很好的例子。
答案 1 :(得分:2)
将text align属性设置为 TextAlign.Left ,然后使用CSS将标签的显示设置为:阻止。