可以这样做吗?
var test = 1;
label+test+.Text = "Some text goes here...";
哪会导致:
label1.Text = "Some text goes here...";
如果我的情况很少,我不介意使用switch-case,但我想要40个标签,我想根据变量值动态分配文本。
答案 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