我在循环中在运行时创建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);
}
希望你的回复!
答案 0 :(得分:5)
this.Controls.Add(new LiteralControl(" "));
此行介于这两个添加
之间答案 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#:) 我最近使用过这段代码