【问题标题】:Creating a win form label in c# code using variable?使用变量在 C# 代码中创建 Win 表单标签?
【发布时间】: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


【解决方案1】:

你正在寻找这样的东西:

for(int i =0; i<10; i++)
{
   Label lbl = new Label();
   lbl.Name = "lbl_Task" + i;
   // set other properties
   this.Controls.Add(lbl);
}

【讨论】:

    【解决方案2】:

    使用标签集合并像这样尝试

    List<Label> labels = new List<Label>();
    for (int i = 0; i < 100; i++)
    {
        Label label = new Label();
        // Set Lable properties
    
        yourLayoutName.Controls.Add(label);//add the lable
        labels.Add(label);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      相关资源
      最近更新 更多