在动态创建的复选框上缩进包装文本

Indent wrapped text on dynamically created checkbox

我有一个从后面的代码动态创建的复选框,它在我的网络表单 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;

如能指出正确方向,我们将不胜感激。谢谢!

编辑您的 css 并添加它,以便复选框中的所有标签都受到影响。

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

如果因为页面中有其他标签而导致问题,请将其命名为 css class 并将其动态添加到您的复选框中,如下所示:

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

更新

也可以用评论中提到的代码实现:

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

我用了this question作为参考。