如何在运行时打印控件创建之间的空间
本文关键字:创建 之间 空间 控件 打印 运行时 | 更新日期: 2023-09-27 18:01:21
我在运行时在循环中创建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);
}
希望你的回复!
this.Controls.Add(new LiteralControl(" "));
这一行位于这两行之间,添加
使用定位
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"]
。最终结果取决于你使用的定位(即"绝对"、"相对"…(。所以我建议你多读一点关于定位的内容。
我会使用CSS来完成这项工作。
我不知道文档的格式,但ASP.NET中的Label
控件呈现为span
,或者如果设置了AssociatedControlID
,则呈现为label
。因此,在基本层面上,类似于:
span, label { margin-right: 10px; }
这将更改所有跨度和标签,因此如果可能,您应该通过在选择器中指定容器来约束它。
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#:(我最近使用过这个代码