【发布时间】:2014-03-21 19:44:59
【问题描述】:
我有这段代码来创建一个附加了变量的新标签,但我得到了一个错误(显然)。有没有办法做到这一点?
System.Windows.Forms.Label lbl_Task[i] = new System.Windows.Forms.Label();
即,如果 i == 4,则标签将称为 lbl_Task4。如果 i == 9,则为 lbl_Task9 等。
编辑:
新代码显示:
for (int i = 0; i < rows; i++)
{
//create a label for the Task Name
Label lbl = new Label();
lbl.Name = "lbl_Task" + i;
tableLayoutPanel1.SetColumnSpan(lbl, 4);
lbl.Dock = System.Windows.Forms.DockStyle.Fill;
lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
lbl.Location = new System.Drawing.Point(3, pointInt);
lbl.Size = new System.Drawing.Size(170, 24);
lbl.TabIndex = 8;
lbl.Text = Convert.ToString(dtTasks.Rows[i]["Task_Name"]);
lbl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.Controls.Add(lbl);
pointInt += 24;
}
这会编译,但在我调试时不会显示在我的 win 表单上。有什么想法吗?
【问题讨论】:
-
而不是依赖Label的名字,使用Control.Tag属性来存储
i,你创建标签的方式是错误的。应该是:System.Windows.Forms.Label lbl_Task = new System.Windows.Forms.Label(); lbl_Task.Tag = i; -
不要写这样的代码,除了出错之外,它的性能非常很差。请改用 ListBox 或 ListView。
-
您将不得不记录您对 TableLayoutPanel 控件所做的操作以及 Label 控件与它的关系。
-
@HansPassant 所说的,或 GDI+ 。
-
通常我不会写这样的代码,但是这是一个实验,看看是否可以这样做!
标签: c# winforms variables label