在动态创建的复选框上缩进换行文字

时间:2018-08-30 16:20:19

标签: c# asp.net checkbox webforms controls

我从后面的代码中动态创建了一个复选框,该复选框在我的Webform asp.net项目中带有一个长标签。当文本换行时,新行将直接在复选框本身下方开始。如何动态设置复选框,以便在需要时自动缩进新行。并非所有动态创建的复选框都带有长标签。

这是我创建该复选框的代码:

MyObject obj = SetNewObject("Supervisor"); 

CheckBox objCheck6 = new CheckBox();
objCheck6.ID = obj.GetFieldValue("Name");
objCheck6.Text = GetControlTitle("Supervisor");  
objCheck6.Checked = obj.GetFieldValue("Value").ToLower() == "true";
tableCell1.Controls.Add(objCheck6);

我尝试了一些无效的方法。我尝试了以下内容,一次一次,但似乎对复选框或复选框的文本的影响都为零:

objCheck6.Style.Add("margin-left", "20px");

objCheck6.LabelAttributes.Add("margin-left", "20px");

objCheck6.TextAlign = TextAlign.Right;

objCheck6.TextAlign = TextAlign.Left;

朝正确方向的一点将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

编辑css并添加它,以使复选框中的所有标签均受影响。

label{
  display: block;
  margin-top: -18px;
  margin-left: 20px;
}

如果由于页面上有其他标签而导致问题,请命名该CSS类,然后将其动态添加到您的checkBox中,如下所示:

objCheck6.InputAttributes["class"] = "className";

更新

这也可以通过注释中提到的代码来实现:

objCheck6.LabelAttributes.Add("style", "display:block;margin-top:-18px;margin-left:20px;");

我以this question作为参考。