如果你的lable名称唯一,同时的确存在的话,可以直接用以下方式
this.Controls.Find("Lable名称", false)[0].Text="value";
如果不知道存不存在
Control[] Cons=this.Controls.Find("Lable名称", false);
如果Cons的数量为0 就是没有 不为0 就是有
第2种方式,
this.Controls.OfType
你所谓的动态赋值不是很明白你要表达的意思。
我想你是不是想说有若干个Label要赋值。但是不要一个个赋值根据这个label名称.text的方式值赋。你可以new一个 Label类型的数组,把所有Label加到数组作为数组元素。然后通过for循环赋值。
Labelname.Text=“内容”;
放到线程中去执行,不要把主线程阻塞了。你的while循环太长的话会造成界面线程假死。
首先在form的load事件中加入一下内容:
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
//使用另外的线程启动showit函数显示内容
Thread t = new Thread (showit);
t.Start();
}
void showit()
{
int i = 0;
while (i <=10000)
{
label.Text = i;
i++;
}
}
估计是想让label的值定时变动吧。
设计界面拖一个timer控件过来。你网上学一下timer的用法,挺简单的。
循环form内的lable吧,这样可以试试