在标签名称中使用变量

时间:2015-11-29 01:07:12

标签: c# variables dynamic label

可以这样做吗?

var test = 1;

label+test+.Text = "Some text goes here...";

哪会导致:

label1.Text = "Some text goes here...";

如果我的情况很少,我不介意使用switch-case,但我想要40个标签,我想根据变量值动态分配文本。

3 个答案:

答案 0 :(得分:3)

在表单中使用Controls.Find()。

void Button1Click(object sender, EventArgs e)
{
    var test = 1;
    var labels = Controls.Find("label" + test, true);
    if (labels.Length > 0)
    {
        var label = (Label) labels[0];
        label.Text = "Some text goes here...";
    }
}

答案 1 :(得分:1)

  

我想要40个标签,我想动态分配文字   取决于变量值

这是另一个例子,与Handoko的基本相同:

        for(int i = 1; i <= 40; i++)
        {
            Label lbl = this.Controls.Find("label" + i.ToString(), true).FirstOrDefault() as Label;
            if (lbl != null)
            {
                lbl.Text = "Hello Label #" + i.ToString();
            }
        }

答案 2 :(得分:1)

var test = 1;
Control label = this.FindControl("label" + test);
if(label != null)
{
  label.Text = "Some text goes here...";
}

有关FindControl的更多信息,请访问: https://msdn.microsoft.com/en-us/library/system.web.ui.control.findcontrol%28v=VS.100%29.aspx?f=255&MSPPError=-2147217396