我想更改标签的文字(i) 当'i'在计时器中增加时,label'i'的文本将会改变
int i =0;
private void timer1_Tick(object sender, EventArgs e)
{
string label = "label" + i.ToString();
Control l = FindControl(label);
Label labeli = (Label)l;
labeli.Text = "somthing";
i++;
}
但它显示错误
“名称'FindControl'在当前上下文中不存在”
代码是否错误或有其他方法可以执行此操作?
答案 0 :(得分:2)
您可以使用LINQ:
Label label = Label label = this.Controls
.OfType<Label>()
.FirstOrDefault(l => l.Name == labelName);
if (label != null) label.Text = "Something";
或遍历以label:
开头的所有标签var labels = this.Controls.OfType<Label>().Where(l => l.Name.StartsWith("label"));
foreach (Label label in labels) {
label.Text = "somthing";
}
或者如果你想找标签1-6:
var labels = Enumerable
.Range(1, 6)
.Select(i =>
this.Controls.OfType<Label>().Where(l => l.Name == "label" + i));
答案 1 :(得分:0)
你可以试试这样的事情
var lbl = this.Controls.Find(label, true).FirstOrDefault() as Label;
然后你应该检查lbl
是否为空,并为它的Name
属性赋值。
if(lbl != null)
{
lbl.Text = "something";
}