如何在运行时在控件创建之间打印空格?

时间:2011-07-04 11:11:42

标签: c# asp.net

我在循环中在运行时创建Label控件,但它们之间没有空格。

我如何在它们之间放置一些空间?我的代码是:

  for (int m = 0; m < dtGroupedByDate.Rows.Count; m++)
  {
      Label Date = new Label();
      Date.Text = dtGroupedByDate.Rows[m][0].ToString();
      this.Controls.Add(Date);
      Label PowerSum = new Label();
      PowerSum.Text = dtGroupedByDate.Rows[m][1].ToString();
      this.Controls.Add(PowerSum);                       
  }

希望你的回复!

4 个答案:

答案 0 :(得分:5)

this.Controls.Add(new LiteralControl("&nbsp;"));

此行介于这两个添加

之间

答案 1 :(得分:1)

我会用CSS做到这一点。

我不知道您的文档格式,但ASP.NET中的Label控件呈现为span,或者如果AssociatedControlID设置为{{1} }}。所以,在基本层面上,例如:

label

这将更改所有跨度和标签,因此如果可能,您应该通过在选择器中指定容器来约束它。

答案 2 :(得分:1)

使用定位

for (int m = 0; m < dtGroupedByDate.Rows.Count; m++)
{
   Label Date = new Label();
   Date.Text = dtGroupedByDate.Rows[m][0].ToString();
   Date.Style["margin-left"] = (m > 0) ? "20px" : "0px";
   this.Controls.Add(Date);
   Label PowerSum = new Label();
   PowerSum.Text = dtGroupedByDate.Rows[m][1].ToString();
   PowerSum.Style["margin-left"] = "20px";
   this.Controls.Add(PowerSum);
}

这回答你的问题。但是为了更好的格式化,如果您不希望在一行中显示所有ur标签,请使用style["margin-top"]。最终结果取决于你正在使用的定位(即“绝对”,“相对”,......)。所以我建议的第一件事是阅读更多有关定位的内容。

答案 3 :(得分:0)

 Dim fnt As New Font("Verdana", 8, FontStyle.Bold, GraphicsUnit.Point)
        Dim i, x, y As Integer
        x = 30
        y = 25
        i = 0
        For i = 0 To dt1.Rows.Count - 1
            Dim chk As New CheckBox()
            chk.Text = dt1.Rows(i)(0)
            chk.Location = New Point(x, y)
            chk.Font = fnt
            chk.Width = 450
            chk.ForeColor = Color.White

            Me.Panel1.Controls.Add(chk)

希望你将它转换为c#:) 我最近使用过这段代码